@mastra/playground-ui 5.1.8 → 5.1.9
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/{colors-CBG_Mm7P.js → colors-BauMYA7t.js} +3 -2
- package/dist/colors-BauMYA7t.js.map +1 -0
- package/dist/{colors-Du4i-E0i.cjs → colors-BjoU9dWU.cjs} +3 -2
- package/dist/colors-BjoU9dWU.cjs.map +1 -0
- package/dist/index.cjs.js +826 -298
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +818 -296
- package/dist/index.es.js.map +1 -1
- package/dist/src/components/ui/entry.d.ts +7 -0
- package/dist/src/components/ui/radio-group.d.ts +5 -0
- package/dist/src/domains/agents/components/agent-advanced-settings.d.ts +1 -0
- package/dist/src/domains/agents/components/agent-model-settings.d.ts +1 -0
- package/dist/src/domains/agents/context/agent-context.d.ts +18 -0
- package/dist/src/domains/agents/hooks/use-agent-model-settings-state.d.ts +15 -0
- package/dist/src/domains/agents/index.d.ts +5 -4
- package/dist/src/domains/workflows/context/use-current-run.d.ts +2 -1
- package/dist/src/domains/workflows/context/workflow-nested-graph-context.d.ts +5 -1
- package/dist/src/domains/workflows/context/workflow-run-context.d.ts +3 -2
- package/dist/src/domains/workflows/utils.d.ts +2 -2
- package/dist/src/domains/workflows/workflow/workflow-default-node.d.ts +3 -1
- package/dist/src/domains/workflows/workflow/workflow-nested-graph.d.ts +5 -1
- package/dist/src/domains/workflows/workflow/workflow-nested-node.d.ts +7 -2
- package/dist/src/domains/workflows/workflow/workflow-status.d.ts +2 -1
- package/dist/src/domains/workflows/workflow/workflow-step-action-bar.d.ts +3 -1
- package/dist/src/domains/workflows/workflow/workflow-trigger.d.ts +12 -10
- package/dist/src/ds/tokens/colors.d.ts +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/types.d.ts +17 -0
- package/dist/tokens.cjs.js +1 -1
- package/dist/tokens.es.js +1 -1
- package/package.json +6 -5
- package/dist/colors-CBG_Mm7P.js.map +0 -1
- package/dist/colors-Du4i-E0i.cjs.map +0 -1
- package/dist/src/domains/agents/agent/context/agent-context.d.ts +0 -19
- package/dist/src/store/agent-store.d.ts +0 -20
- /package/dist/src/domains/agents/{agent → components}/agent-chat.d.ts +0 -0
- /package/dist/src/domains/agents/{agent → components}/agent-evals.d.ts +0 -0
- /package/dist/src/domains/agents/{agent → components}/agent-traces.d.ts +0 -0
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/lib/mastra-client.ts","../src/contexts/mastra-client-context.tsx","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","../../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/utils.ts","../src/components/ui/button.tsx","../src/components/ui/tooltip.tsx","../src/components/assistant-ui/tooltip-icon-button.tsx","../src/components/ui/avatar.tsx","../src/components/assistant-ui/image-with-fallback.tsx","../src/components/assistant-ui/markdown-text.tsx","../src/ds/icons/Icon.tsx","../src/ds/components/Badge/Badge.tsx","../src/ds/icons/AgentIcon.tsx","../src/ds/icons/AgentCoinIcon.tsx","../src/ds/icons/AiIcon.tsx","../src/ds/icons/ApiIcon.tsx","../src/ds/icons/BranchIcon.tsx","../src/ds/icons/CheckIcon.tsx","../src/ds/icons/ChevronIcon.tsx","../src/ds/icons/CommitIcon.tsx","../src/ds/icons/CrossIcon.tsx","../src/ds/icons/DbIcon.tsx","../src/ds/icons/DebugIcon.tsx","../src/ds/icons/DeploymentIcon.tsx","../src/ds/icons/DividerIcon.tsx","../src/ds/icons/DocsIcon.tsx","../src/ds/icons/EnvIcon.tsx","../src/ds/icons/EvaluatorCoinIcon.tsx","../src/ds/icons/FiltersIcon.tsx","../src/ds/icons/GithubCoinIcon.tsx","../src/ds/icons/GithubIcon.tsx","../src/ds/icons/GoogleIcon.tsx","../src/ds/icons/RepoIcon.tsx","../src/ds/icons/HomeIcon.tsx","../src/ds/icons/InfoIcon.tsx","../src/ds/icons/JudgeIcon.tsx","../src/ds/icons/LogsIcon.tsx","../src/ds/icons/MemoryIcon.tsx","../src/ds/icons/OpenAIIcon.tsx","../src/ds/icons/PromptIcon.tsx","../src/ds/icons/ScoreIcon.tsx","../src/ds/icons/SettingsIcon.tsx","../src/ds/icons/SlashIcon.tsx","../src/ds/icons/ToolsIcon.tsx","../src/ds/icons/TraceIcon.tsx","../src/ds/icons/TsIcon.tsx","../src/ds/icons/VariablesIcon.tsx","../src/ds/icons/WorkflowIcon.tsx","../src/ds/icons/WorkflowCoinIcon.tsx","../src/ds/icons/LatencyIcon.tsx","../src/ds/icons/McpServerIcon.tsx","../src/ds/icons/FolderIcon.tsx","../src/ds/icons/McpCoinIcon.tsx","../src/ds/icons/ToolCoinIcon.tsx","../src/ds/icons/AgentNetworkCoinIcon.tsx","../src/hooks/use-copy-to-clipboard.ts","../src/components/ui/copy-button.tsx","../src/components/ui/syntax-highlighter.tsx","../src/components/assistant-ui/tool-fallback.tsx","../src/components/assistant-ui/assistant-message.tsx","../src/components/ui/dialog.tsx","../src/components/assistant-ui/use-has-attachments.ts","../src/components/assistant-ui/attachment.tsx","../src/components/assistant-ui/user-message.tsx","../src/hooks/use-autoscroll.tsx","../src/ds/components/Txt/Txt.tsx","../src/hooks/use-speech-recognition.ts","../src/components/assistant-ui/thread.tsx","../src/lib/file.ts","../src/components/assistant-ui/attachment-adapters/pdfs-adapter.ts","../src/services/mastra-runtime-provider.tsx","../src/store/agent-store.ts","../src/domains/agents/agent/context/agent-context.tsx","../src/store/playground-store.ts","../src/domains/agents/agent/agent-chat.tsx","../src/components/ui/badge.tsx","../src/components/ui/copyable-content.tsx","../src/components/ui/formatted-date.tsx","../src/components/ui/input.tsx","../src/components/ui/score-indicator.tsx","../src/components/ui/table.tsx","../src/components/ui/tabs.tsx","../src/domains/agents/agent/agent-evals.tsx","../src/domains/traces/context/trace-context.tsx","../src/ds/components/Table/Table.tsx","../src/ds/components/Table/utils.ts","../src/ds/components/Table/Cells.tsx","../src/domains/traces/hooks/use-open-trace.ts","../src/lib/number.ts","../src/domains/traces/traces-table.tsx","../src/hooks/use-resize-column.ts","../src/domains/resizable-panel.tsx","../src/ds/components/Button/Button.tsx","../src/ds/components/TraceTree/TraceTree.tsx","../src/ds/components/TraceTree/Time.tsx","../src/ds/components/TraceTree/Span.tsx","../src/ds/components/TraceTree/Spans.tsx","../src/ds/components/TraceTree/Trace.tsx","../src/domains/traces/utils/getSpanVariant.ts","../src/domains/traces/utils/createSpanTree.ts","../src/domains/traces/trace-span-view.tsx","../src/ds/components/Header/Header.tsx","../src/domains/traces/trace-details.tsx","../src/components/syntax-highlighter.tsx","../src/domains/traces/utils.ts","../src/domains/traces/trace-span-details.tsx","../src/domains/traces/traces-sidebar.tsx","../src/domains/agents/agent/agent-traces.tsx","../src/services/network-runtime-provider.tsx","../src/components/ui/markdown-renderer.tsx","../src/domains/networks/tool-fallback.tsx","../src/domains/networks/network-context.tsx","../src/domains/networks/network-chat.tsx","../src/services/vnext-network-chat-provider.tsx","../src/components/ui/spinner.tsx","../src/domains/workflows/workflow/workflow-clock.tsx","../src/components/ui/skeleton.tsx","../src/lib/string.ts","../src/domains/workflows/workflow/utils.ts","../src/components/ui/text.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/scroll-area.tsx","../src/domains/workflows/utils.ts","../src/domains/workflows/context/workflow-run-context.tsx","../src/domains/workflows/context/use-current-run.tsx","../src/domains/workflows/workflow/workflow-code-dialog-content.tsx","../src/domains/workflows/workflow/workflow-step-action-bar.tsx","../src/domains/workflows/workflow/workflow-condition-node.tsx","../src/domains/workflows/workflow/workflow-default-node.tsx","../src/domains/workflows/workflow/workflow-after-node.tsx","../src/domains/workflows/workflow/workflow-loop-result-node.tsx","../src/components/ui/slider.tsx","../src/domains/workflows/workflow/zoom-slider.tsx","../src/domains/workflows/workflow/workflow-nested-graph.tsx","../src/domains/workflows/context/workflow-nested-graph-context.tsx","../src/domains/workflows/workflow/workflow-nested-node.tsx","../src/domains/workflows/workflow/workflow-graph-inner.tsx","../src/domains/workflows/workflow/workflow-graph.tsx","../src/hooks/use-workflow-runs.ts","../src/hooks/use-workflows.ts","../src/domains/networks/v-next/step-dropdown.tsx","../src/domains/networks/v-next/wrapped-assistant-message.tsx","../src/components/assistant-ui/network-threads.tsx","../src/services/vnext-message-provider.tsx","../src/lib/formatting.ts","../src/services/vnext-network-runtime-provider.tsx","../src/domains/networks/v-next/network-chat.tsx","../src/domains/workflows/workflow/workflow-traces.tsx","../src/domains/workflows/workflow/legacy-workflow-nested-graph.tsx","../src/domains/workflows/context/legacy-workflow-nested-graph-context.tsx","../src/domains/workflows/workflow/legacy-workflow-nested-node.tsx","../src/domains/workflows/workflow/legacy-workflow-graph-inner.tsx","../src/domains/workflows/workflow/legacy-workflow-graph.tsx","../src/components/ui/autoform/components/Form.tsx","../src/components/ui/autoform/components/FieldWrapper.tsx","../src/components/ui/alert.tsx","../src/components/ui/autoform/components/ErrorMessage.tsx","../src/components/ui/autoform/components/SubmitButton.tsx","../src/components/ui/autoform/components/StringField.tsx","../src/components/ui/autoform/components/NumberField.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/autoform/components/BooleanField.tsx","../src/components/ui/calendar.tsx","../src/components/ui/popover.tsx","../src/components/ui/date-picker.tsx","../src/components/ui/autoform/components/DateField.tsx","../src/components/ui/select.tsx","../src/components/ui/autoform/components/SelectField.tsx","../src/components/ui/autoform/components/ObjectWrapper.tsx","../src/components/ui/autoform/components/ArrayWrapper.tsx","../src/components/ui/autoform/components/ArrayElementWrapper.tsx","../src/components/ui/autoform/components/RecordField.tsx","../src/components/ui/autoform/AutoForm.tsx","../src/components/ui/autoform/utils.ts","../src/components/ui/autoform/zodProvider/field-type-inference.ts","../src/components/ui/autoform/zodProvider/index.tsx","../src/components/ui/label.tsx","../src/components/dynamic-form/index.tsx","../src/components/dynamic-form/utils.ts","../src/components/ui/code-block.tsx","../src/domains/workflows/workflow/workflow-card.tsx","../src/domains/workflows/workflow/legacy-workflow-status.tsx","../src/domains/workflows/workflow/workflow-result.tsx","../src/domains/workflows/workflow/legacy-workflow-trigger.tsx","../src/domains/workflows/workflow/workflow-trigger.tsx","../src/domains/workflows/runs/workflow-runs.tsx","../src/components/ui/data-table.tsx","../src/components/ui/containers/MainContent.tsx","../src/components/threads.tsx","../src/ds/components/Breadcrumb/Breadcrumb.tsx","../src/ds/components/Logo/MastraLogo.tsx","../src/ds/components/Entity/Entity.tsx","../src/ds/components/EmptyState/EmptyState.tsx","../src/lib/polls.ts"],"sourcesContent":["import { MastraClient } from '@mastra/client-js';\n\nexport const createMastraClient = (baseUrl?: string, mastraClientHeaders: Record<string, string> = {}) => {\n return new MastraClient({\n baseUrl: baseUrl || '',\n // only add the header if the baseUrl is not provided i.e it's a local dev environment\n headers: !baseUrl ? { ...mastraClientHeaders, 'x-mastra-dev-playground': 'true' } : mastraClientHeaders,\n });\n};\n","import React, { createContext, useContext, ReactNode } from 'react';\nimport { MastraClient } from '@mastra/client-js';\nimport { createMastraClient } from '@/lib/mastra-client';\n\ntype MastraClientContextType = {\n client: MastraClient;\n};\n\nconst MastraClientContext = createContext<MastraClientContextType | undefined>(undefined);\n\nexport const MastraClientProvider = ({\n children,\n baseUrl,\n headers,\n}: {\n children: ReactNode;\n baseUrl?: string;\n headers?: Record<string, string>;\n}) => {\n const client = createMastraClient(baseUrl, headers);\n\n return <MastraClientContext.Provider value={{ client }}>{children}</MastraClientContext.Provider>;\n};\n\nexport const useMastraClient = () => {\n const context = useContext(MastraClientContext);\n if (context === undefined) {\n throw new Error('useMastraClient must be used within a MastraClientProvider');\n }\n return context.client;\n};\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n outline: 'border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-md px-3 text-xs',\n lg: 'h-10 rounded-md px-8',\n icon: 'h-9 w-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n return <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />;\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","'use client';\n\nimport { forwardRef } from 'react';\n\nimport { Button, ButtonProps } from '@/components/ui/button';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { cn } from '@/lib/utils';\n\nexport type TooltipIconButtonProps = ButtonProps & {\n tooltip: string;\n side?: 'top' | 'bottom' | 'left' | 'right';\n};\n\nexport const TooltipIconButton = forwardRef<HTMLButtonElement, TooltipIconButtonProps>(\n ({ children, tooltip, side = 'bottom', className, ...rest }, ref) => {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" {...rest} className={cn('size-6 p-1', className)} ref={ref}>\n {children}\n <span className=\"sr-only\">{tooltip}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent side={side}>{tooltip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n },\n);\n\nTooltipIconButton.displayName = 'TooltipIconButton';\n","import * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', className)}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image ref={ref} className={cn('aspect-square h-full w-full', className)} {...props} />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn('flex h-full w-full items-center justify-center rounded-full bg-muted', className)}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import { ImgHTMLAttributes, useEffect, useState } from 'react';\n\nexport const ImageWithFallback = ({ alt, src, ...rest }: ImgHTMLAttributes<HTMLImageElement>) => {\n const [error, setError] = useState(false);\n\n useEffect(() => {\n setError(false);\n }, [src]);\n\n return error || !src ? (\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n width=\"150\"\n height=\"150\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z\"\n />\n </svg>\n <p className=\"text-xs italic text-muted-foreground -mt-[0.625rem] mb-[0.625rem]\">Image link is broken</p>\n </div>\n ) : (\n <img\n src={src}\n alt={alt}\n {...rest}\n onError={() => {\n setError(true);\n }}\n />\n );\n};\n","'use client';\n\nimport {\n CodeHeaderProps,\n MarkdownTextPrimitive,\n unstable_memoizeMarkdownComponents as memoizeMarkdownComponents,\n useIsMarkdownCodeBlock,\n} from '@assistant-ui/react-markdown';\nimport '@assistant-ui/react-markdown/styles/dot.css';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { FC, memo, useState } from 'react';\nimport remarkGfm from 'remark-gfm';\nimport { makePrismAsyncSyntaxHighlighter } from '@assistant-ui/react-syntax-highlighter';\nimport { coldarkDark } from 'react-syntax-highlighter/dist/cjs/styles/prism';\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { cn } from '@/lib/utils';\nimport { ImageWithFallback } from './image-with-fallback';\n\nconst SyntaxHighlighter = makePrismAsyncSyntaxHighlighter({\n style: coldarkDark,\n customStyle: {\n margin: 0,\n backgroundColor: 'black',\n },\n});\n\nconst MarkdownTextImpl = () => {\n return <MarkdownTextPrimitive remarkPlugins={[remarkGfm]} className=\"aui-md\" components={defaultComponents} />;\n};\n\nexport const MarkdownText = memo(MarkdownTextImpl);\n\nconst CodeHeader: FC<CodeHeaderProps> = ({ language, code }) => {\n const { isCopied, copyToClipboard } = useCopyToClipboard();\n const onCopy = () => {\n if (!code || isCopied) return;\n copyToClipboard(code);\n };\n\n return (\n <div\n style={{\n background: 'hsl(0 0% 100% / 0.06)',\n borderTopRightRadius: '0.5rem',\n borderTopLeftRadius: '0.5rem',\n marginTop: '0.5rem',\n border: '1px solid hsl(0 0% 20.4%)',\n borderBottom: 'none',\n }}\n className=\"flex items-center justify-between gap-4 px-4 py-2 text-sm font-semibold text-white\"\n >\n <span className=\"lowercase [&>span]:text-xs\">{language}</span>\n <TooltipIconButton tooltip=\"Copy\" onClick={onCopy}>\n <span className=\"grid\">\n <span\n key=\"checkmark\"\n style={{\n gridArea: '1/1',\n }}\n className={cn('transition-transform', isCopied ? 'scale-100' : 'scale-0')}\n >\n <CheckIcon size={14} />\n </span>\n <span\n style={{\n gridArea: '1/1',\n }}\n className={cn('transition-transform', isCopied ? 'scale-0' : 'scale-100')}\n key=\"copy\"\n >\n <CopyIcon size={14} />\n </span>\n </span>\n </TooltipIconButton>\n </div>\n );\n};\n\nconst useCopyToClipboard = ({\n copiedDuration = 1500,\n}: {\n copiedDuration?: number;\n} = {}) => {\n const [isCopied, setIsCopied] = useState<boolean>(false);\n\n const copyToClipboard = (value: string) => {\n if (!value) return;\n\n navigator.clipboard.writeText(value).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), copiedDuration);\n });\n };\n\n return { isCopied, copyToClipboard };\n};\n\nconst defaultComponents = memoizeMarkdownComponents({\n h1: ({ className, ...props }) => (\n <h1\n className={cn('mb-8 scroll-m-20 text-4xl font-extrabold tracking-tight last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '2rem',\n }}\n />\n ),\n h2: ({ className, ...props }) => (\n <h2\n className={cn('mb-4 mt-8 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '2rem',\n }}\n />\n ),\n h3: ({ className, ...props }) => (\n <h3\n className={cn('scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '1.5rem',\n }}\n />\n ),\n h4: ({ className, ...props }) => (\n <h4\n className={cn('scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '1.5rem',\n }}\n />\n ),\n h5: ({ className, ...props }) => (\n <h5\n className={cn('font-semibold first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '1rem',\n }}\n />\n ),\n h6: ({ className, ...props }) => (\n <h6\n className={cn('font-semibold first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '1rem',\n }}\n />\n ),\n p: ({ className, ...props }) => <p className={cn('leading-7 first:mt-0 last:mb-0', className)} {...props} />,\n a: ({ className, ...props }) => (\n <a className={cn('text-primary font-medium underline underline-offset-4', className)} {...props} />\n ),\n blockquote: ({ className, ...props }) => (\n <blockquote className={cn('border-l-2 pl-6 italic', className)} {...props} />\n ),\n ul: ({ className, ...props }) => <ul className={cn('my-5 ml-6 list-disc [&>li]:mt-2', className)} {...props} />,\n ol: ({ className, ...props }) => <ol className={cn('my-5 ml-6 list-decimal [&>li]:mt-2', className)} {...props} />,\n hr: ({ className, ...props }) => <hr className={cn('my-5 border-b', className)} {...props} />,\n table: ({ className, ...props }) => (\n <table className={cn('my-5 w-full border-separate border-spacing-0 overflow-y-auto', className)} {...props} />\n ),\n th: ({ className, ...props }) => (\n <th\n className={cn(\n 'bg-muted px-4 py-2 text-left font-bold first:rounded-tl-lg last:rounded-tr-lg [&[align=center]]:text-center [&[align=right]]:text-right',\n className,\n )}\n {...props}\n />\n ),\n td: ({ className, ...props }) => (\n <td\n className={cn(\n 'border-b border-l px-4 py-2 text-left last:border-r [&[align=center]]:text-center [&[align=right]]:text-right',\n className,\n )}\n {...props}\n />\n ),\n tr: ({ className, ...props }) => (\n <tr\n className={cn(\n 'm-0 border-b p-0 first:border-t [&:last-child>td:first-child]:rounded-bl-lg [&:last-child>td:last-child]:rounded-br-lg',\n className,\n )}\n {...props}\n />\n ),\n sup: ({ className, ...props }) => <sup className={cn('[&>a]:text-xs [&>a]:no-underline', className)} {...props} />,\n pre: ({ className, ...props }) => (\n <pre\n {...props}\n style={{\n borderBottomRightRadius: '0.5rem',\n borderBottomLeftRadius: '0.5rem',\n background: 'transparent',\n fontSize: '0.875rem',\n marginBottom: '0.5rem',\n border: '1px solid hsl(0 0% 20.4%)',\n }}\n className={cn('overflow-x-auto p-4 text-white', className)}\n />\n ),\n code: function Code({ className, ...props }) {\n const isCodeBlock = useIsMarkdownCodeBlock();\n return (\n <pre\n style={{\n fontSize: '0.875rem',\n display: 'inline',\n }}\n >\n <code\n className={cn(!isCodeBlock && 'bg-muted rounded border font-semibold', className)}\n {...props}\n style={{\n fontWeight: '400',\n paddingBlock: !isCodeBlock ? '0.1em' : 0,\n paddingInline: !isCodeBlock ? '0.3em' : 0,\n }}\n />{' '}\n </pre>\n );\n },\n CodeHeader,\n SyntaxHighlighter,\n img: ImageWithFallback,\n});\n","import clsx from 'clsx';\nimport React from 'react';\n\nexport interface IconProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n size?: 'default' | 'lg' | 'sm';\n}\n\nconst sizes = {\n sm: '[&>svg]:h-icon-sm [&>svg]:w-icon-sm',\n default: '[&>svg]:h-icon-default [&>svg]:w-icon-default',\n lg: '[&>svg]:h-icon-lg [&>svg]:w-icon-lg',\n};\n\nexport const Icon = ({ children, className, size = 'default', ...props }: IconProps) => {\n return (\n <span className={clsx('block', sizes[size], className)} {...props}>\n {children}\n </span>\n );\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { Icon } from '../../icons/Icon';\n\nexport interface BadgeProps {\n icon?: React.ReactNode;\n variant?: 'default' | 'success' | 'error' | 'info';\n className?: string;\n children?: React.ReactNode;\n}\n\nconst variantClasses = {\n default: 'text-icon3',\n success: 'text-accent1',\n error: 'text-accent2',\n info: 'text-accent3',\n};\n\nexport const Badge = ({ icon, variant = 'default', className, children, ...props }: BadgeProps) => {\n return (\n <div\n className={clsx(\n 'bg-surface4 text-ui-sm gap-md h-badge-default inline-flex items-center rounded-md',\n icon ? 'pl-md pr-1.5' : 'px-1.5',\n icon || variant === 'default' ? 'text-icon5' : variantClasses[variant],\n className,\n )}\n {...props}\n >\n {icon && (\n <span className={variantClasses[variant]}>\n <Icon>{icon}</Icon>\n </span>\n )}\n {children}\n </div>\n );\n};\n","import React from 'react';\n\nexport const AgentIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.5 15C10.3565 15 12.137 14.2625 13.4497 12.9497C14.7625 11.637 15.5 9.85652 15.5 8C15.5 6.14348 14.7625 4.36301 13.4497 3.05025C12.137 1.7375 10.3565 1 8.5 1C6.64348 1 4.86301 1.7375 3.55025 3.05025C2.2375 4.36301 1.5 6.14348 1.5 8C1.5 9.85652 2.2375 11.637 3.55025 12.9497C4.86301 14.2625 6.64348 15 8.5 15ZM5.621 10.879L4.611 11.889C3.84179 11.1198 3.31794 10.1398 3.1057 9.07291C2.89346 8.00601 3.00236 6.90013 3.41864 5.89512C3.83491 4.89012 4.53986 4.03112 5.44434 3.42676C6.34881 2.8224 7.41219 2.49983 8.5 2.49983C9.58781 2.49983 10.6512 2.8224 11.5557 3.42676C12.4601 4.03112 13.1651 4.89012 13.5814 5.89512C13.9976 6.90013 14.1065 8.00601 13.8943 9.07291C13.6821 10.1398 13.1582 11.1198 12.389 11.889L11.379 10.879C11.1004 10.6003 10.7696 10.3792 10.4055 10.2284C10.0414 10.0776 9.6511 9.99995 9.257 10H7.743C7.3489 9.99995 6.95865 10.0776 6.59455 10.2284C6.23045 10.3792 5.89963 10.6003 5.621 10.879Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.5 4C7.96957 4 7.46086 4.21071 7.08579 4.58579C6.71071 4.96086 6.5 5.46957 6.5 6V6.5C6.5 7.03043 6.71071 7.53914 7.08579 7.91421C7.46086 8.28929 7.96957 8.5 8.5 8.5C9.03043 8.5 9.53914 8.28929 9.91421 7.91421C10.2893 7.53914 10.5 7.03043 10.5 6.5V6C10.5 5.46957 10.2893 4.96086 9.91421 4.58579C9.53914 4.21071 9.03043 4 8.5 4Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const AgentCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M63.0002 0.968262C28.5152 0.968262 0.55957 15.6484 0.55957 33.7573V51.2428C0.55957 69.3517 28.5152 84.0319 63.0002 84.0319C97.4853 84.0319 125.441 69.3517 125.441 51.2428V33.7573C125.441 15.6484 97.4853 0.968262 63.0002 0.968262Z\"\n stroke=\"#707070\"\n />\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636V49.8363C6.67773 65.0322 31.894 77.351 62.9998 77.351C94.1055 77.351 119.322 65.0322 119.322 49.8363V35.1636Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636M119.322 35.1636C119.322 19.9677 94.1055 7.64893 62.9998 7.64893C31.894 7.64893 6.67773 19.9677 6.67773 35.1636M119.322 35.1636V49.8363C119.322 65.0322 94.1055 77.351 62.9998 77.351C31.894 77.351 6.67773 65.0322 6.67773 49.8363V35.1636\"\n stroke=\"#424242\"\n />\n <g clipPath=\"url(#clip0_21421_19519)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M38.5383 47.0955C45.0714 50.3122 53.9322 52.1193 63.1714 52.1193C72.4106 52.1193 81.2714 50.3122 87.8045 47.0955C94.3376 43.8787 98.0078 39.5159 98.0078 34.9668C98.0078 30.4177 94.3376 26.0549 87.8045 22.8381C81.2714 19.6214 72.4106 17.8143 63.1714 17.8143C53.9322 17.8143 45.0714 19.6214 38.5383 22.8381C32.0052 26.0549 28.3349 30.4177 28.3349 34.9668C28.3349 39.5159 32.0052 43.8787 38.5383 47.0955ZM42.9089 34.9668L35.8005 34.9668C35.8004 32.3013 37.4056 29.6956 40.4132 27.4793C43.4207 25.263 47.6956 23.5355 52.6971 22.5154C57.6986 21.4954 63.2022 21.2285 68.5118 21.7485C73.8214 22.2685 78.6986 23.552 82.5266 25.4368C86.3546 27.3216 88.9615 29.723 90.0176 32.3373C91.0737 34.9517 90.5316 37.6614 88.4599 40.1241C86.3881 42.5867 82.8797 44.6915 78.3784 46.1723C73.8771 47.6532 68.585 48.4435 63.1714 48.4435V44.9435C63.1717 43.9778 62.7855 43.0215 62.035 42.1293C61.2845 41.2372 60.1843 40.4265 58.7973 39.7438L53.4695 37.1205C52.0828 36.4376 50.4364 35.8959 48.6244 35.5263C46.8124 35.1568 44.8702 34.9667 42.9089 34.9668Z\"\n fill=\"#A9A9A9\"\n />\n <path\n d=\"M77.2474 28.0361C75.3808 27.1171 72.8492 26.6007 70.2094 26.6007C67.5696 26.6007 65.038 27.1171 63.1714 28.0361L61.4119 28.9025C59.5453 29.8215 58.4966 31.068 58.4966 32.3678C58.4966 33.6676 59.5453 34.9141 61.4119 35.8331C63.2785 36.7522 65.8101 37.2685 68.4499 37.2685C71.0897 37.2685 73.6213 36.7522 75.4879 35.8331L77.2474 34.9668C79.114 34.0477 80.1627 32.8012 80.1627 31.5015C80.1627 30.2017 79.114 28.9552 77.2474 28.0361Z\"\n fill=\"#A9A9A9\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_21421_19519\">\n <rect\n width=\"62.7591\"\n height=\"62.7591\"\n fill=\"white\"\n transform=\"matrix(0.897148 0.441731 -0.897148 0.441731 63.1714 7.24365)\"\n />\n </clipPath>\n </defs>\n </svg>\n);\n","import React from 'react';\n\nexport const AiIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.31445 3.16083C3.78402 3.16083 3.27531 3.37154 2.90024 3.74661C2.52517 4.12169 2.31445 4.63039 2.31445 5.16083V5.66083C2.31445 6.19126 2.52517 6.69997 2.90024 7.07504C3.27531 7.45011 3.78402 7.66083 4.31445 7.66083C4.84489 7.66083 5.35359 7.45011 5.72867 7.07504C6.10374 6.69997 6.31445 6.19126 6.31445 5.66083V5.16083C6.31445 4.63039 6.10374 4.12169 5.72867 3.74661C5.35359 3.37154 4.84489 3.16083 4.31445 3.16083Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.76666 9.50235C6.57678 9.28532 6.30244 9.16083 6.01407 9.16083H4.50201C4.10791 9.16078 3.71766 9.23838 3.35356 9.38921C3.11733 9.48706 2.8951 9.6145 2.69205 9.76806C2.48056 9.928 2.38001 10.1888 2.38001 10.454V13.0642C2.38001 13.6165 2.82773 14.0642 3.38001 14.0642H8.55436C9.4135 14.0642 9.87269 13.0523 9.30695 12.4057L6.76666 9.50235Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.0686 2.26107C12.0686 2.17635 11.9999 2.10767 11.9152 2.10767H10.9948C10.91 2.10767 10.8414 2.17635 10.8414 2.26107V3.85184C10.8414 3.95606 10.7397 4.02994 10.6406 3.99773L9.12775 3.50619C9.04718 3.48001 8.96063 3.52411 8.93445 3.60468L8.65003 4.48004C8.62385 4.56062 8.66795 4.64716 8.74852 4.67334L10.2611 5.1648C10.3602 5.19701 10.399 5.31655 10.3378 5.40086L9.40289 6.68765C9.35309 6.75619 9.36829 6.85212 9.43683 6.90192L10.1815 7.44292C10.25 7.49272 10.3459 7.47752 10.3957 7.40898L11.3309 6.12181C11.3922 6.03749 11.5179 6.03749 11.5791 6.12181L12.5143 7.40904C12.5641 7.47758 12.6601 7.49278 12.7286 7.44298L13.4732 6.90198C13.5418 6.85218 13.557 6.75625 13.5072 6.68771L12.5723 5.40091C12.511 5.3166 12.5499 5.19705 12.649 5.16485L14.1615 4.67338C14.2421 4.6472 14.2862 4.56066 14.26 4.48009L13.9756 3.60473C13.9494 3.52415 13.8629 3.48006 13.7823 3.50624L12.2694 3.99782C12.1703 4.03003 12.0686 3.95615 12.0686 3.85193V2.26107Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const ApiIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M11.0313 7.97578C11.0313 9.34436 9.92183 10.4538 8.55324 10.4538C7.18466 10.4538 6.0752 9.34436 6.0752 7.97578C6.0752 6.60719 7.18466 5.49773 8.55324 5.49773C9.92183 5.49773 11.0313 6.60719 11.0313 7.97578ZM11.0313 7.97578H14.573\"\n stroke=\"currentColor\"\n strokeWidth=\"1.33333\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M12.967 4.46154C11.9273 3.14431 10.3165 2.29883 8.50814 2.29883C5.37277 2.29883 2.83105 4.84055 2.83105 7.97591C2.83105 11.1113 5.37277 13.653 8.50814 13.653C10.3165 13.653 11.9273 12.8075 12.967 11.4903\"\n stroke=\"currentColor\"\n strokeWidth=\"1.33333\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const BranchIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <circle cx=\"8.57129\" cy=\"8.08496\" r=\"2.27832\" stroke=\"currentColor\" />\n <path d=\"M5.89692 8.08203H2.45312\" stroke=\"currentColor\" />\n <path d=\"M14.5454 8.08203H11.1016\" stroke=\"currentColor\" />\n </svg>\n);\n","import React from 'react';\n\nexport const CheckIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.99982 2.0625C3.8252 2.0625 2.06232 3.82538 2.06232 6C2.06232 8.17462 3.8252 9.9375 5.99982 9.9375C8.17444 9.9375 9.93732 8.17462 9.93732 6C9.93732 3.82538 8.17444 2.0625 5.99982 2.0625ZM0.937317 6C0.937317 3.20406 3.20388 0.9375 5.99982 0.9375C8.79576 0.9375 11.0623 3.20406 11.0623 6C11.0623 8.79594 8.79576 11.0625 5.99982 11.0625C3.20388 11.0625 0.937317 8.79594 0.937317 6Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.97865 4.57004C8.22604 4.75795 8.27426 5.11082 8.08635 5.35821L6.05486 8.03279C5.94873 8.17251 5.78348 8.25471 5.60803 8.25505C5.43257 8.2554 5.267 8.17385 5.16032 8.03454L3.80937 6.27034C3.6205 6.02369 3.66733 5.67063 3.91398 5.48176C4.16063 5.29288 4.51369 5.33972 4.70257 5.58637L5.6051 6.76498L7.19048 4.67774C7.37839 4.43036 7.73126 4.38213 7.97865 4.57004Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const ChevronIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.60059 6.30005L8.00098 9.70005L11.3996 6.30142\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const CommitIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.46484 7.18262H3.29529C3.55505 8.46829 4.69121 9.43628 6.05347 9.43628C7.41572 9.43628 8.55188 8.46829 8.81165 7.18262L10.534 7.18262C10.8447 7.18262 11.0965 6.93078 11.0965 6.62012C11.0965 6.30946 10.8447 6.05762 10.534 6.05762L8.81075 6.05762C8.54929 4.77414 7.41417 3.80835 6.05347 3.80835C4.69277 3.80835 3.55764 4.77414 3.29618 6.05762H1.46484C1.15418 6.05762 0.902344 6.30946 0.902344 6.62012C0.902344 6.93078 1.15418 7.18262 1.46484 7.18262ZM6.05347 4.93335C5.12068 4.93335 4.3645 5.68952 4.3645 6.62231C4.3645 7.5551 5.12068 8.31128 6.05347 8.31128C6.98626 8.31128 7.74243 7.5551 7.74243 6.62231C7.74243 5.68952 6.98626 4.93335 6.05347 4.93335Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const CrossIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.99982 2.0625C3.8252 2.0625 2.06232 3.82538 2.06232 6C2.06232 8.17462 3.8252 9.9375 5.99982 9.9375C8.17444 9.9375 9.93732 8.17462 9.93732 6C9.93732 3.82538 8.17444 2.0625 5.99982 2.0625ZM0.937317 6C0.937317 3.20406 3.20388 0.9375 5.99982 0.9375C8.79576 0.9375 11.0623 3.20406 11.0623 6C11.0623 8.79594 8.79576 11.0625 5.99982 11.0625C3.20388 11.0625 0.937317 8.79594 0.937317 6Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.89741 4.10293C8.11707 4.32261 8.11706 4.67877 7.89738 4.89843L6.79517 6.00058L7.8962 7.10155C8.11588 7.32122 8.11589 7.67737 7.89623 7.89705C7.67656 8.11673 7.32041 8.11674 7.10073 7.89707L5.99965 6.79605L4.89856 7.89707C4.67889 8.11673 4.32273 8.11672 4.10307 7.89704C3.88341 7.67737 3.88342 7.32121 4.10309 7.10155L5.20413 6.00058L4.10191 4.89843C3.88224 4.67877 3.88223 4.32262 4.10189 4.10294C4.32155 3.88326 4.67771 3.88325 4.89738 4.10292L5.99965 5.20511L7.10191 4.10291C7.32159 3.88325 7.67774 3.88326 7.89741 4.10293Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const DbIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.941406 2.831V3.75745C0.941406 4.27885 1.35491 4.76002 2.05273 5.14711C2.10389 5.17549 2.15658 5.20337 2.21074 5.23071C3.23028 5.74546 4.77322 6.07356 6.50007 6.07356C8.31866 6.07356 9.93328 5.70967 10.9474 5.14711C11.6453 4.76002 12.0587 4.27886 12.0587 3.75745V2.831C12.0587 1.55185 9.57003 0.514893 6.50007 0.514893C3.4301 0.514893 0.941406 1.55185 0.941406 2.831ZM1.02052 6.14518C0.968505 6.27247 0.941406 6.40331 0.941406 6.53678V7.46322C0.941406 7.98463 1.35491 8.46579 2.05273 8.85289C3.06686 9.41542 4.68148 9.77933 6.50007 9.77933C8.22692 9.77933 9.76986 9.45128 10.7894 8.93645C10.8436 8.90912 10.8962 8.88124 10.9474 8.85289C11.6453 8.46579 12.0587 7.98462 12.0587 7.46322V6.53678C12.0587 6.40331 12.0316 6.27248 11.9796 6.14519C11.664 6.35469 11.3187 6.53063 10.9652 6.67795C9.75207 7.18337 8.17267 7.46322 6.50007 7.46322C4.82747 7.46322 3.24803 7.18337 2.03502 6.67795C1.68142 6.53063 1.3362 6.35469 1.02052 6.14518ZM1.02052 9.85095C0.968505 9.97824 0.941406 10.1091 0.941406 10.2426V11.169C0.941406 12.4481 3.4301 13.4851 6.50007 13.4851C9.57003 13.4851 12.0587 12.4481 12.0587 11.169V10.2426C12.0587 10.1091 12.0316 9.97824 11.9796 9.85095C11.664 10.0605 11.3187 10.2364 10.9652 10.3837C9.75207 10.8891 8.17267 11.169 6.50007 11.169C4.82747 11.169 3.24803 10.8891 2.03502 10.3837C1.68142 10.2364 1.3362 10.0605 1.02052 9.85095Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const DebugIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.14934 2.26085C5.88284 2.57794 5.92385 3.05104 6.24094 3.31754L7.05702 4.00343C6.51911 4.24774 6.05679 4.62747 5.72304 5.10093L4.31451 3.91711C3.99742 3.65061 3.52432 3.69162 3.25781 4.00871C2.99131 4.3258 3.03232 4.7989 3.34941 5.06541L5.1711 6.59647C5.16257 6.69009 5.1582 6.78504 5.1582 6.88115V8.02254H3.36523C2.95102 8.02254 2.61523 8.35833 2.61523 8.77254C2.61523 9.18675 2.95102 9.52254 3.36523 9.52254H5.1582V11.0692L3.38248 12.7049C3.07782 12.9856 3.05836 13.4601 3.339 13.7647C3.61965 14.0694 4.09412 14.0888 4.39877 13.8082L10.2843 8.38652V10.5302C10.2843 11.4231 9.5099 12.2129 8.47123 12.2129C8.28703 12.2129 8.11062 12.1876 7.94518 12.1411C7.54642 12.029 7.13229 12.2614 7.02021 12.6601C6.90812 13.0589 7.14051 13.473 7.53927 13.5851C7.83596 13.6685 8.14892 13.7129 8.47123 13.7129C9.71498 13.7129 10.8279 13.0443 11.3927 12.0355L13.0897 13.4618C13.4068 13.7283 13.8799 13.6873 14.1464 13.3702C14.4129 13.0531 14.3719 12.58 14.0548 12.3135L11.7843 10.4052V9.52254H13.634C14.0482 9.52254 14.384 9.18675 14.384 8.77254C14.384 8.35833 14.0482 8.02254 13.634 8.02254H11.7843V7.00473L13.9182 5.039C14.2228 4.75836 14.2423 4.28389 13.9616 3.97923C13.681 3.67458 13.2065 3.65512 12.9019 3.93576L6.6582 9.68737V6.88115C6.6582 5.98821 7.43256 5.19844 8.47123 5.19844L8.4789 5.19846L8.50782 5.22276L8.53124 5.19934C8.72739 5.20523 8.91424 5.23987 9.08781 5.29818C9.48045 5.43009 9.90569 5.21873 10.0376 4.82608C10.146 4.50351 10.0227 4.15895 9.75749 3.97309L10.4258 3.30474C10.7187 3.01185 10.7187 2.53698 10.4258 2.24408C10.1329 1.95119 9.65807 1.95119 9.36518 2.24408L8.41985 3.18941L7.20604 2.16925C6.88895 1.90274 6.41585 1.94375 6.14934 2.26085Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const DeploymentIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.83531 7.0062C6.64515 7.35069 6.15 7.35069 5.95984 7.0062L2.99029 1.62664C2.7855 1.25565 3.10614 0.814077 3.5223 0.893977L6.30195 1.42765C6.36421 1.43961 6.42818 1.43961 6.49044 1.42766L9.27301 0.893806C9.68915 0.813965 10.0097 1.25552 9.80495 1.62648L6.83531 7.0062Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.77553 6.93249C4.70399 6.80288 4.52254 6.79459 4.4558 6.92674C4.30167 7.23196 4.21484 7.57697 4.21484 7.94226C4.21484 9.18814 5.22483 10.1981 6.4707 10.1981C7.71658 10.1981 8.72656 9.18814 8.72656 7.94226C8.72656 7.51818 8.60954 7.12143 8.40603 6.78254C8.33262 6.66031 8.15949 6.67411 8.09059 6.79894L7.70941 7.48947C7.13892 8.52294 5.65347 8.52293 5.08299 7.48947L4.77553 6.93249ZM5.56313 5.8764C5.46196 5.92091 5.42707 6.04354 5.48048 6.1403L5.95846 7.0062C6.14862 7.35069 6.64377 7.35069 6.83393 7.0062L7.33905 6.09115C7.39467 5.99039 7.35417 5.86275 7.2461 5.8232C7.00431 5.7347 6.74315 5.6864 6.4707 5.6864C6.14785 5.6864 5.84083 5.75423 5.56313 5.8764Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.01974 3.49407C4.17993 3.78426 4.54405 3.88541 4.85312 3.76562C5.35484 3.57118 5.90031 3.46453 6.4707 3.46453C7.0005 3.46453 7.50881 3.55654 7.98052 3.72545C8.28711 3.83523 8.64168 3.73133 8.79906 3.44623C8.96234 3.15043 8.85109 2.77497 8.5364 2.652C7.89621 2.40184 7.19949 2.26453 6.4707 2.26453C5.69013 2.26453 4.94634 2.42205 4.2694 2.70703C3.96395 2.83562 3.85958 3.20392 4.01974 3.49407ZM9.9461 4.47216C9.81565 4.70848 9.85645 4.99948 10.0211 5.21339C10.6026 5.96887 10.9484 6.91518 10.9484 7.94226C10.9484 10.4152 8.94369 12.42 6.4707 12.42C3.99772 12.42 1.99297 10.4152 1.99297 7.94226C1.99297 6.96004 2.30923 6.05168 2.84547 5.31345C3.0006 5.09989 3.03605 4.81591 2.90848 4.58482C2.70986 4.22501 2.22216 4.15342 1.97124 4.47893C1.2324 5.43738 0.792968 6.6385 0.792968 7.94226C0.792969 11.078 3.33498 13.62 6.4707 13.62C9.60643 13.62 12.1484 11.078 12.1484 7.94226C12.1484 6.58193 11.67 5.33333 10.8723 4.35553C10.6173 4.04298 10.141 4.11901 9.9461 4.47216Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const DividerIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M8.5 3V13\" stroke=\"currentColor\" strokeWidth=\"0.5\" />\n </svg>\n);\n","import React from 'react';\n\nexport const DocsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.1747 3.18598L7.02554 1.95209C7.11557 1.89207 7.31087 1.87106 7.41016 1.90924L12.4139 3.83377C12.4683 3.85467 12.546 3.96798 12.546 4.03118V13.0167C12.546 13.265 12.7473 13.4663 12.9956 13.4663C13.2439 13.4663 13.4452 13.265 13.4452 13.0167V4.03118C13.4452 3.59605 13.1384 3.14906 12.7367 2.99456L7.73293 1.07004C7.36225 0.927472 6.86056 0.981451 6.52679 1.20396L4.20445 2.75219L3.90419 2.95236L3.90647 2.95824C3.69329 3.05449 3.55469 3.27599 3.55469 3.57581V11.7119C3.55469 12.2084 3.93067 12.7499 4.39251 12.9206L9.89804 14.955C10.3608 15.126 10.7359 14.8596 10.7359 14.3659V5.83295C10.7359 5.33662 10.3498 4.81289 9.88389 4.66643L5.1747 3.18598Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const EnvIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect x=\"2.74902\" y=\"1.89307\" width=\"11.8252\" height=\"11.8252\" rx=\"1.5\" stroke=\"currentColor\" />\n <path\n d=\"M5.74512 5.43539L8.13964 7.83011L5.86867 10.1011M9.32711 10.1753H11.7465\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const EvaluatorCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636V49.8363C6.67773 65.0322 31.894 77.351 62.9998 77.351C94.1055 77.351 119.322 65.0322 119.322 49.8363V35.1636Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636M119.322 35.1636C119.322 19.9677 94.1055 7.64893 62.9998 7.64893C31.894 7.64893 6.67773 19.9677 6.67773 35.1636M119.322 35.1636V49.8363C119.322 65.0322 94.1055 77.351 62.9998 77.351C31.894 77.351 6.67773 65.0322 6.67773 49.8363V35.1636\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.968262C28.5152 0.968262 0.55957 15.6484 0.55957 33.7573V51.2428C0.55957 69.3517 28.5152 84.0319 63.0002 84.0319C97.4853 84.0319 125.441 69.3517 125.441 51.2428V33.7573C125.441 15.6484 97.4853 0.968262 63.0002 0.968262Z\"\n stroke=\"#707070\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M29.7417 32.3666L33.2608 30.6339C34.6607 29.9446 36.5594 29.5574 38.5393 29.5574C40.5191 29.5574 42.4178 29.9446 43.8178 30.6339C45.2177 31.3232 46.0042 32.2581 46.0042 33.2329C46.0042 34.2077 45.2177 35.1426 43.8178 35.8319L40.2988 37.5646C38.8988 38.2539 37.0001 38.6411 35.0203 38.6411C33.0404 38.6411 31.1417 38.2539 29.7417 37.5646C28.3418 36.8753 27.5553 35.9404 27.5553 34.9656C27.5553 33.9908 28.3418 33.0559 29.7417 32.3666ZM43.8178 39.2972L56.1343 33.2329C57.5343 32.5436 59.433 32.1564 61.4129 32.1564C63.3927 32.1564 65.2914 32.5436 66.6914 33.2329C68.0913 33.9222 68.8778 34.8571 68.8778 35.8319C68.8778 36.8067 68.0913 37.7416 66.6914 38.4309L54.3748 44.4952C52.9749 45.1845 51.0761 45.5718 49.0963 45.5718C47.1165 45.5718 45.2177 45.1845 43.8178 44.4952C42.4178 43.8059 41.6314 42.8711 41.6314 41.8962C41.6314 40.9214 42.4178 39.9865 43.8178 39.2972ZM57.8938 46.2279L86.0459 32.3666C87.4459 31.6773 89.3446 31.29 91.3245 31.29C93.3043 31.29 95.203 31.6773 96.603 32.3666C98.0029 33.0559 98.7894 33.9908 98.7894 34.9656C98.7894 35.9404 98.0029 36.8753 96.603 37.5646L68.4509 51.4259C67.0509 52.1152 65.1522 52.5024 63.1724 52.5024C61.1925 52.5024 59.2938 52.1152 57.8938 51.4259C56.4939 50.7366 55.7074 49.8017 55.7074 48.8269C55.7074 47.8521 56.4939 46.9172 57.8938 46.2279Z\"\n fill=\"#A9A9A9\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const FiltersIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.00001 12.5C6.00001 11.948 6.44401 11.5 7.00001 11.5H10C10.552 11.5 11 11.944 11 12.5C11 13.052 10.556 13.5 10 13.5H7.00001C6.44801 13.5 6.00001 13.056 6.00001 12.5ZM4.00001 8.5C4.00001 7.948 4.44601 7.5 4.99801 7.5H12.002C12.553 7.5 13 7.944 13 8.5C13 9.052 12.554 9.5 12.002 9.5H4.99801C4.86671 9.50026 4.73665 9.47457 4.61531 9.42438C4.49398 9.37419 4.38377 9.30051 4.29102 9.20757C4.19827 9.11464 4.12481 9.00428 4.07486 8.88284C4.02492 8.76141 3.99948 8.6313 4.00001 8.5ZM1.50001 4C1.50001 3.172 2.17501 2.5 2.99801 2.5H14.002C14.829 2.5 15.5 3.166 15.5 4C15.5 4.828 14.825 5.5 14.002 5.5H2.99801C2.80101 5.5004 2.60587 5.46185 2.42382 5.38659C2.24176 5.31132 2.07638 5.20082 1.93717 5.06142C1.79796 4.92203 1.68768 4.7565 1.61265 4.57434C1.53763 4.39219 1.49935 4.197 1.50001 4Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const GithubCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"127\" height=\"86\" viewBox=\"0 0 127 86\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M63.9116 1.87891C29.4266 1.87891 1.47095 16.5591 1.47095 34.668V52.1534C1.47095 70.2623 29.4266 84.9425 63.9116 84.9425C98.3967 84.9425 126.352 70.2623 126.352 52.1534V34.668C126.352 16.5591 98.3967 1.87891 63.9116 1.87891Z\"\n stroke=\"#707070\"\n />\n <path\n d=\"M120.233 36.0742C120.233 51.2701 95.0169 63.5889 63.9111 63.5889C32.8053 63.5889 7.58911 51.2701 7.58911 36.0742V50.7469C7.58911 65.9429 32.8053 78.2616 63.9111 78.2616C95.0169 78.2616 120.233 65.9429 120.233 50.7469V36.0742Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M120.233 36.0742C120.233 51.2701 95.0169 63.5889 63.9111 63.5889C32.8053 63.5889 7.58911 51.2701 7.58911 36.0742M120.233 36.0742C120.233 20.8783 95.0169 8.55957 63.9111 8.55957C32.8053 8.55957 7.58911 20.8783 7.58911 36.0742M120.233 36.0742V50.7469C120.233 65.9429 95.0169 78.2616 63.9111 78.2616C32.8053 78.2616 7.58911 65.9429 7.58911 50.7469V36.0742\"\n stroke=\"#424242\"\n />\n <g clipPath=\"url(#clip0_21999_20545)\">\n <path\n d=\"M86.4812 24.847C73.5239 18.4672 52.5342 18.4672 39.5769 24.847C29.1993 29.9566 27.1473 37.5778 33.3621 43.6978C34.3295 44.3762 35.4728 44.2463 36.0884 43.9432C36.6454 43.6689 38.4629 42.7452 40.4271 41.7781C33.45 39.4109 34.4468 37.419 35.2969 36.5385C35.7073 36.0766 36.6454 34.4889 36.2057 33.7239C35.8246 33.1032 35.7366 31.9918 37.7301 32.9445C39.6062 33.8394 39.1958 35.3405 38.932 35.9034C37.4955 38.6892 41.8635 39.8584 43.8276 40.2192C45.5572 39.5697 47.1989 39.3676 48.4594 39.4109C43.8276 36.553 40.3977 32.8723 49.3682 28.4555C51.9186 27.1997 54.9381 26.6079 58.0748 26.5358C58.4266 26.1316 60.0096 24.5439 64.5241 23.5912C64.5241 23.5912 67.1039 24.2552 68.5696 27.9503C70.9735 28.6143 73.2307 29.4659 75.2242 30.4474C77.2176 31.4289 78.9472 32.5403 80.2957 33.7239C87.8297 34.4312 89.1489 35.7158 89.1489 35.7158C87.2141 37.9386 83.9894 38.7181 83.1686 38.8913C83.022 40.4357 81.8494 41.908 79.2697 43.1782C70.2699 47.6094 62.7945 45.8918 56.9901 43.6112C57.1074 44.3906 56.4331 45.4443 54.2345 46.5269C51.0978 48.0713 48.5474 49.2982 47.7558 49.6879C47.1402 49.991 46.8471 50.5684 48.2542 51.0303C54.4816 52.5487 61.5193 53.0674 68.3768 52.5133C75.2342 51.9592 81.5661 50.3602 86.4812 47.9414C99.4385 41.5616 99.4385 31.2268 86.4812 24.847Z\"\n fill=\"#A9A9A9\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_21999_20545\">\n <rect\n width=\"62.7591\"\n height=\"62.7591\"\n fill=\"white\"\n transform=\"matrix(0.897148 0.441731 -0.897148 0.441731 64.0828 8.1543)\"\n />\n </clipPath>\n </defs>\n </svg>\n);\n","import React from 'react';\n\nexport const GithubIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_21999_22095)\">\n <path\n d=\"M7.5 0.75C3.6325 0.75 0.5 3.8825 0.5 7.75C0.5 10.8475 2.50375 13.4637 5.28625 14.3912C5.63625 14.4525 5.7675 14.2425 5.7675 14.0587C5.7675 13.8925 5.75875 13.3412 5.75875 12.755C4 13.0787 3.545 12.3262 3.405 11.9325C3.32625 11.7312 2.985 11.11 2.6875 10.9437C2.4425 10.8125 2.0925 10.4887 2.67875 10.48C3.23 10.4712 3.62375 10.9875 3.755 11.1975C4.385 12.2562 5.39125 11.9587 5.79375 11.775C5.855 11.32 6.03875 11.0137 6.24 10.8387C4.6825 10.6637 3.055 10.06 3.055 7.3825C3.055 6.62125 3.32625 5.99125 3.7725 5.50125C3.7025 5.32625 3.4575 4.60875 3.8425 3.64625C3.8425 3.64625 4.42875 3.4625 5.7675 4.36375C6.3275 4.20625 6.9225 4.1275 7.5175 4.1275C8.1125 4.1275 8.7075 4.20625 9.2675 4.36375C10.6062 3.45375 11.1925 3.64625 11.1925 3.64625C11.5775 4.60875 11.3325 5.32625 11.2625 5.50125C11.7087 5.99125 11.98 6.6125 11.98 7.3825C11.98 10.0687 10.3438 10.6637 8.78625 10.8387C9.04 11.0575 9.25875 11.4775 9.25875 12.1337C9.25875 13.07 9.25 13.8225 9.25 14.0587C9.25 14.2425 9.38125 14.4612 9.73125 14.3912C11.1209 13.9221 12.3284 13.029 13.1839 11.8377C14.0393 10.6463 14.4996 9.21668 14.5 7.75C14.5 3.8825 11.3675 0.75 7.5 0.75Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_21999_22095\">\n <rect width=\"14\" height=\"14\" fill=\"currentColor\" transform=\"translate(0.5 0.75)\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import React from 'react';\n\nexport const GoogleIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_21999_20513)\">\n <path\n d=\"M13.5037 7.54867C13.5037 7.1144 13.4648 6.69683 13.3924 6.29596H7.62436V8.66776H10.9204C10.7756 9.43052 10.3413 10.0764 9.68994 10.5106V12.0529H11.6776C12.8356 10.9839 13.5037 9.41382 13.5037 7.54867Z\"\n fill=\"white\"\n />\n <path\n d=\"M7.62415 13.5339C9.27773 13.5339 10.6643 12.9882 11.6776 12.0529L9.68994 10.5106C9.14431 10.8781 8.44816 11.1009 7.62415 11.1009C6.03182 11.1009 4.67889 10.0263 4.19451 8.57877H2.15677V10.16C3.1645 12.1587 5.23008 13.5339 7.62415 13.5339Z\"\n fill=\"white\"\n />\n <path\n d=\"M4.19472 8.57315C4.07223 8.20569 3.99985 7.81595 3.99985 7.40952C3.99985 7.00308 4.07223 6.61335 4.19472 6.24589V4.66469H2.15698C1.73941 5.4887 1.5 6.41849 1.5 7.40952C1.5 8.40055 1.73941 9.33034 2.15698 10.1543L3.74374 8.91834L4.19472 8.57315Z\"\n fill=\"white\"\n />\n <path\n d=\"M7.62415 3.72376C8.5261 3.72376 9.32783 4.03555 9.96811 4.63685L11.7219 2.88306C10.6585 1.89202 9.27773 1.28516 7.62415 1.28516C5.23008 1.28516 3.16471 2.66036 2.15698 4.66469L4.19472 6.24589C4.6791 4.79832 6.03182 3.72376 7.62415 3.72376Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_21999_20513\">\n <rect width=\"12.2487\" height=\"12.2487\" fill=\"white\" transform=\"translate(1.375 1.28516)\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import React from 'react';\n\nexport const RepoIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"21\" height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.15562 2.79004C4.56136 2.78745 3.26758 4.07913 3.26758 5.6734V13.8135C3.26758 15.4058 4.55831 16.6967 6.15062 16.6968L6.16797 16.6968V14.8218L6.15082 14.8218C5.59397 14.8218 5.14258 14.3703 5.14258 13.8135V13.4325C5.14258 12.8756 5.59415 12.4241 6.15112 12.4242L15.0001 12.4258L15.0056 14.8228L12.6035 14.8226V16.6976L16.8849 16.698L16.8713 10.7717V2.80745L6.15562 2.79004ZM14.9963 10.5508V4.67941L6.15257 4.66504C5.59503 4.66413 5.14258 5.11586 5.14258 5.6734V10.7304C5.4566 10.6132 5.79655 10.5491 6.15147 10.5492L14.9963 10.5508Z\"\n fill=\"#939393\"\n />\n <path d=\"M7.55469 13.6982H11.2655V18.6897L9.41007 17.1997L7.55469 18.6897V13.6982Z\" fill=\"#939393\" />\n </svg>\n);\n","import React from 'react';\n\nexport const HomeIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M3.84766 10.1444H9.11328\" stroke=\"currentColor\" strokeWidth=\"1.33333\" strokeLinecap=\"round\" />\n <path\n d=\"M11.1395 12.9536L1.82388 12.9535C1.4557 12.9535 1.15723 12.655 1.15723 12.2868V5.69147C1.15723 5.49041 1.24796 5.30009 1.40417 5.17351L6.07746 1.38658C6.32202 1.18841 6.67185 1.18829 6.91654 1.38629L11.5589 5.14286C11.7153 5.26944 11.8062 5.45989 11.8062 5.66111V12.287C11.8062 12.6552 11.5077 12.9536 11.1395 12.9536Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.33333\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const InfoIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7.07303 7.39921C6.65882 7.39921 6.32303 7.735 6.32303 8.14921C6.32303 8.56343 6.65882 8.89921 7.07303 8.89921H7.75V10.6187C7.75 11.0329 8.08579 11.3687 8.5 11.3687C8.91421 11.3687 9.25 11.0329 9.25 10.6187V8.14921C9.25 7.735 8.91421 7.39921 8.5 7.39921H7.07303Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.50309 4.72995C7.9971 4.72995 7.58691 5.14014 7.58691 5.64613C7.58691 6.15212 7.9971 6.56231 8.50309 6.56231C9.00908 6.56231 9.41927 6.15212 9.41927 5.64613C9.41927 5.14014 9.00908 4.72995 8.50309 4.72995Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.5 1.75293C5.04984 1.75293 2.25293 4.54984 2.25293 8C2.25293 11.4502 5.04984 14.2471 8.5 14.2471C11.9502 14.2471 14.7471 11.4502 14.7471 8C14.7471 4.54984 11.9502 1.75293 8.5 1.75293ZM3.75293 8C3.75293 5.37827 5.87827 3.25293 8.5 3.25293C11.1218 3.25293 13.2471 5.37826 13.2471 8C13.2471 10.6218 11.1218 12.7471 8.5 12.7471C5.87826 12.7471 3.75293 10.6218 3.75293 8Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const JudgeIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.31445 3.16083C3.78402 3.16083 3.27531 3.37154 2.90024 3.74661C2.52517 4.12169 2.31445 4.63039 2.31445 5.16083V5.66083C2.31445 6.19126 2.52517 6.69997 2.90024 7.07504C3.27531 7.45011 3.78402 7.66083 4.31445 7.66083C4.84489 7.66083 5.35359 7.45011 5.72867 7.07504C6.10374 6.69997 6.31445 6.19126 6.31445 5.66083V5.16083C6.31445 4.63039 6.10374 4.12169 5.72867 3.74661C5.35359 3.37154 4.84489 3.16083 4.31445 3.16083Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.76666 9.50235C6.57678 9.28532 6.30244 9.16083 6.01407 9.16083H4.50201C4.10791 9.16078 3.71766 9.23838 3.35356 9.38921C3.11733 9.48706 2.8951 9.6145 2.69205 9.76806C2.48056 9.928 2.38001 10.1888 2.38001 10.454V13.0642C2.38001 13.6165 2.82773 14.0642 3.38001 14.0642H8.55436C9.4135 14.0642 9.87269 13.0523 9.30695 12.4057L6.76666 9.50235Z\"\n fill=\"currentColor\"\n />\n <rect x=\"7.92188\" y=\"6.46759\" width=\"1.41089\" height=\"1.56773\" rx=\"0.705445\" fill=\"currentColor\" />\n <rect x=\"10.4258\" y=\"4.35107\" width=\"1.41089\" height=\"3.72998\" rx=\"0.705445\" fill=\"currentColor\" />\n <rect x=\"12.9287\" y=\"2.23419\" width=\"1.41089\" height=\"5.75781\" rx=\"0.705445\" fill=\"currentColor\" />\n </svg>\n);\n","import React from 'react';\n\nexport const LogsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M3.46094 8.01825L13.6348 8.01825\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d=\"M3.46094 3.49384L13.6348 3.49384\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d=\"M3.46094 12.5427L13.6348 12.5427\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n);\n","import React from 'react';\n\nexport const MemoryIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M3.8674 9.19968L4.14554 10.8649C4.23965 11.4283 4.75254 11.8237 5.32137 11.7713L5.58252 11.7472C6.56555 11.6567 7.43309 12.3868 7.51181 13.3708L7.59308 14.3867C7.60422 14.5259 7.71868 14.6342 7.85825 14.6376L9.91053 14.6876C10.1066 14.6924 10.2434 14.4948 10.17 14.3129L8.90452 11.1782C8.80956 10.9429 8.65085 10.7389 8.44626 10.5889L7.90134 10.1895C7.70604 10.0464 7.55223 9.85411 7.45759 9.63124C7.15011 8.90712 6.6579 7.71234 6.37054 6.88944C6.19204 6.3783 5.79931 6.29158 5.45492 6.21553C4.98179 6.11106 4.5999 6.02673 4.99001 4.88985C5.66408 2.92541 8.06015 2.07904 10.6601 3.33088C12.6488 4.2884 13.1187 6.35416 13.0328 7.58237C13.0297 7.62768 13.0214 7.67186 13.0094 7.71566C12.8829 8.17534 12.368 8.40491 11.9415 8.19169L10.3022 7.37201C10.2069 7.32439 10.0927 7.33657 10.0096 7.40322L8.64809 8.49559C8.55405 8.57104 8.52072 8.69931 8.56615 8.811L10.8995 14.5478C10.9404 14.6483 11.0369 14.715 11.1454 14.7177L12.0572 14.7399C12.2581 14.7448 12.3951 14.5382 12.3124 14.3551L11.8681 13.3706C11.4211 12.3803 11.6047 11.2192 12.3354 10.4151L13.4616 9.17575C13.7473 8.86125 13.9224 8.46187 13.9599 8.03858L13.9763 7.85359C14.2866 4.35298 11.377 1.41272 7.87336 1.68639C6.03919 1.82965 4.45399 3.02228 3.80807 4.74492L3.70275 5.02579C3.5828 5.34571 3.62741 5.70411 3.82213 5.98485L3.88946 6.08192C4.12183 6.41695 4.0958 6.86726 3.82637 7.17328L3.06705 8.03572C2.96261 8.15435 2.98058 8.33664 3.10617 8.43259L3.66059 8.85617C3.77064 8.94026 3.84458 9.06307 3.8674 9.19968Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const OpenAIIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10.1266 5.67745C10.3409 5.0225 10.2695 4.2961 9.92413 3.70069C9.40017 2.78376 8.34034 2.31934 7.30433 2.53369C6.85182 2.02164 6.18496 1.73584 5.49428 1.73584C4.43445 1.73584 3.50561 2.41461 3.17218 3.4149C2.49342 3.55779 1.90992 3.97458 1.56458 4.5819C1.04062 5.49883 1.1597 6.64202 1.86228 7.42796C1.64793 8.09482 1.73129 8.80931 2.07663 9.40472C2.60059 10.3217 3.66042 10.798 4.69643 10.5717C5.16085 11.0838 5.8158 11.3815 6.50648 11.3815C7.56631 11.3815 8.49515 10.7027 8.82858 9.70243C9.50735 9.55953 10.0908 9.14274 10.4362 8.53542C10.9601 7.61849 10.8411 6.46339 10.1266 5.67745ZM6.50648 10.7503C6.07778 10.7503 5.67291 10.6074 5.35138 10.3336C5.36329 10.3217 5.39902 10.3097 5.41093 10.2978L7.32815 9.19037C7.42341 9.13083 7.48295 9.03557 7.48295 8.91648V6.21332L8.29271 6.67774C8.30462 6.67774 8.30462 6.68965 8.30462 6.70156V8.9403C8.31653 9.94059 7.50677 10.7503 6.50648 10.7503ZM2.62441 9.09511C2.41006 8.72595 2.33861 8.29726 2.41006 7.88047C2.42197 7.89238 2.44578 7.90429 2.4696 7.91619L4.38682 9.02366C4.48209 9.0832 4.60117 9.0832 4.69643 9.02366L7.04235 7.66612V8.60687C7.04235 8.61878 7.04235 8.63069 7.03044 8.63069L5.0894 9.75006C4.23201 10.2502 3.12455 9.9525 2.62441 9.09511ZM2.12426 4.90342C2.33861 4.53427 2.67204 4.26038 3.06501 4.10557V6.39195C3.06501 6.49912 3.12455 6.60629 3.21982 6.66583L5.56573 8.02337L4.75597 8.48779C4.74407 8.48779 4.73216 8.4997 4.73216 8.48779L2.79112 7.36842C1.90992 6.86827 1.62412 5.76081 2.12426 4.90342ZM8.79285 6.45149L6.44694 5.09395L7.2567 4.62953C7.2686 4.62953 7.28051 4.61762 7.28051 4.62953L9.22155 5.7489C10.0908 6.24905 10.3766 7.35651 9.8765 8.2139C9.66215 8.58305 9.32872 8.85694 8.93575 8.99984V6.72538C8.94766 6.6182 8.88812 6.51103 8.79285 6.45149ZM9.5907 5.23685C9.5788 5.22494 9.55498 5.21303 9.53116 5.20113L7.61394 4.09366C7.51868 4.03412 7.39959 4.03412 7.30433 4.09366L4.95841 5.4512V4.51045C4.95841 4.49854 4.95841 4.48663 4.97032 4.48663L6.91136 3.36726C7.78066 2.86712 8.87621 3.16482 9.37636 4.03412C9.5907 4.39137 9.66215 4.82006 9.5907 5.23685ZM4.51781 6.904L3.70805 6.43958C3.69615 6.43958 3.69615 6.42767 3.69615 6.41576V4.17702C3.69615 3.17673 4.5059 2.36697 5.50619 2.36697C5.93489 2.36697 6.33977 2.50987 6.66129 2.78376C6.64938 2.79567 6.62556 2.80758 6.60175 2.81949L4.68453 3.92695C4.58926 3.98649 4.52972 4.08176 4.52972 4.20084V6.904H4.51781ZM4.95841 5.95134L6.00634 5.34402L7.05426 5.95134V7.15407L6.00634 7.76139L4.95841 7.15407V5.95134Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const PromptIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.8341 11.2099H12.4915C13.598 11.2099 14.5 10.3156 14.5 9.21251V4.20729C14.5 3.10576 13.6007 2.2099 12.4915 2.2099H4.50853C3.40195 2.2099 2.5 3.10416 2.5 4.20729V9.21251C2.5 10.3112 3.39464 11.2053 4.5 11.2099V13.2005C4.5 13.7665 4.87069 13.9533 5.32796 13.6368L8.8341 11.2099Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const ScoreIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 12V11C3 10.6022 3.15804 10.2206 3.43934 9.93934C3.72064 9.65804 4.10218 9.5 4.5 9.5C4.89782 9.5 5.27936 9.65804 5.56066 9.93934C5.84196 10.2206 6 10.6022 6 11V12C6 12.3978 5.84196 12.7794 5.56066 13.0607C5.27936 13.342 4.89782 13.5 4.5 13.5C4.10218 13.5 3.72064 13.342 3.43934 13.0607C3.15804 12.7794 3 12.3978 3 12ZM7 12V8.5C7 8.10218 7.15804 7.72064 7.43934 7.43934C7.72064 7.15804 8.10218 7 8.5 7C8.89782 7 9.27936 7.15804 9.56066 7.43934C9.84196 7.72064 10 8.10218 10 8.5V12C10 12.3978 9.84196 12.7794 9.56066 13.0607C9.27936 13.342 8.89782 13.5 8.5 13.5C8.10218 13.5 7.72064 13.342 7.43934 13.0607C7.15804 12.7794 7 12.3978 7 12ZM11 12V4C11 3.60218 11.158 3.22064 11.4393 2.93934C11.7206 2.65804 12.1022 2.5 12.5 2.5C12.8978 2.5 13.2794 2.65804 13.5607 2.93934C13.842 3.22064 14 3.60218 14 4V12C14 12.3978 13.842 12.7794 13.5607 13.0607C13.2794 13.342 12.8978 13.5 12.5 13.5C12.1022 13.5 11.7206 13.342 11.4393 13.0607C11.158 12.7794 11 12.3978 11 12Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const SettingsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"18\" viewBox=\"0 0 17 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.40864 11.9983C7.58064 11.9733 6.84164 11.6153 6.31564 11.0563C6.31464 11.0563 6.31464 11.0553 6.31464 11.0553C5.78864 10.4963 5.47564 9.73633 5.50064 8.90833C5.52564 8.08033 5.88464 7.34133 6.44364 6.81533C7.00264 6.28833 7.76264 5.97633 8.59064 6.00133C9.41864 6.02633 10.1576 6.38433 10.6836 6.94333H10.6846C11.2106 7.50333 11.5236 8.26233 11.4986 9.09033C11.4726 9.91833 11.1146 10.6583 10.5556 11.1843C9.99664 11.7103 9.23664 12.0233 8.40864 11.9983ZM16.1266 8.15033L14.3606 7.74033C14.2316 7.14133 14.0146 6.57633 13.7216 6.05733L14.7726 4.57933C14.9116 4.38533 14.8926 4.12033 14.7296 3.94633L13.9206 3.08733C13.7576 2.91333 13.4946 2.87933 13.2916 3.00533L11.7526 3.96533C11.2526 3.64133 10.7016 3.39033 10.1116 3.22633L9.80964 1.43833C9.76964 1.20333 9.56964 1.02833 9.33164 1.02133L8.15264 0.985326C7.91364 0.978326 7.70364 1.14033 7.64964 1.37233L7.24064 3.13933C6.64164 3.26733 6.07664 3.48433 5.55664 3.77733L4.07864 2.72633C3.88464 2.58833 3.61964 2.60633 3.44664 2.76933L2.58664 3.57833C2.41364 3.74133 2.37964 4.00533 2.50564 4.20733L3.46564 5.74633C3.14164 6.24633 2.89064 6.79833 2.72564 7.38833L0.937635 7.68933C0.702635 7.72933 0.528635 7.92933 0.520635 8.16733L0.485635 9.34733C0.477635 9.58533 0.639635 9.79533 0.872635 9.84933L2.63864 10.2583C2.76764 10.8573 2.98464 11.4233 3.27764 11.9423L2.22564 13.4203C2.08764 13.6143 2.10564 13.8793 2.26964 14.0523L3.07864 14.9123C3.24164 15.0853 3.50464 15.1203 3.70664 14.9933L5.24564 14.0333C5.74663 14.3583 6.29764 14.6093 6.88764 14.7733L7.18964 16.5613C7.22864 16.7963 7.42864 16.9713 7.66764 16.9783L8.84663 17.0143C9.08564 17.0213 9.29564 16.8593 9.34964 16.6273L9.75864 14.8603C10.3576 14.7323 10.9226 14.5153 11.4416 14.2213L12.9206 15.2733C13.1146 15.4113 13.3786 15.3933 13.5526 15.2293L14.4116 14.4213C14.5856 14.2573 14.6196 13.9943 14.4936 13.7923L13.5336 12.2533C13.8576 11.7523 14.1086 11.2013 14.2726 10.6113L16.0616 10.3103C16.2966 10.2703 16.4706 10.0703 16.4776 9.83233L16.5136 8.65233C16.5206 8.41433 16.3586 8.20433 16.1266 8.15033Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const SlashIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M5.25684 12.6387L10.4003 3.36133H11.7432L6.5997 12.6387H5.25684Z\" fill=\"currentColor\" />\n </svg>\n);\n","import React from 'react';\n\nexport const ToolsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.5605 1.42351C8.0791 0.904904 8.92215 0.906157 9.4395 1.42351L10.6922 2.67617C11.2108 3.19477 11.2095 4.03782 10.6922 4.55517L9.4395 5.80783C8.9209 6.32643 8.07785 6.32518 7.5605 5.80783L6.30784 4.55517C5.78923 4.03656 5.79049 3.19352 6.30784 2.67617L7.5605 1.42351ZM3.17618 5.80783C3.69478 5.28923 4.53782 5.29048 5.05517 5.80783L6.30784 7.0605C6.82644 7.5791 6.82519 8.42214 6.30784 8.93949L5.05517 10.1922C4.53657 10.7108 3.69353 10.7095 3.17618 10.1922L1.92351 8.93949C1.40491 8.42089 1.40616 7.57785 1.92351 7.0605L3.17618 5.80783ZM11.9448 5.80783C12.4634 5.28923 13.3065 5.29048 13.8238 5.80783L15.0765 7.0605C15.5951 7.5791 15.5938 8.42214 15.0765 8.93949L13.8238 10.1922C13.3052 10.7108 12.4622 10.7095 11.9448 10.1922L10.6922 8.93949C10.1736 8.42089 10.1748 7.57785 10.6922 7.0605L11.9448 5.80783ZM7.5605 10.1922C8.0791 9.67355 8.92215 9.67481 9.4395 10.1922L10.6922 11.4448C11.2108 11.9634 11.2095 12.8065 10.6922 13.3238L9.4395 14.5765C8.9209 15.0951 8.07785 15.0938 7.5605 14.5765L6.30784 13.3238C5.78923 12.8052 5.79049 11.9622 6.30784 11.4448L7.5605 10.1922Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const TraceIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M3.0498 3.17139V7.95137M6.91346 12.8737L4.04984 12.8738C3.49754 12.8738 3.0498 12.4261 3.0498 11.8738V7.95137M3.0498 7.95137L6.85968 7.95125\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n />\n <path d=\"M6.59668 3.12631L13.9507 3.12631\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d=\"M10.293 7.95099L13.8072 7.95099\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d=\"M10.293 12.8025L13.8072 12.8025\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n);\n","import React from 'react';\n\nexport const TsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect x=\"2.74902\" y=\"1.89307\" width=\"11.8252\" height=\"11.8252\" rx=\"1.5\" stroke=\"currentColor\" />\n <path d=\"M5.64062 7.98265V7.29806H8.86605V7.98265H7.66371V11.2253H6.84297V7.98265H5.64062Z\" fill=\"currentColor\" />\n <path\n d=\"M11.5277 8.42754C11.5124 8.27285 11.4465 8.15268 11.3302 8.06703C11.2138 7.98137 11.056 7.93855 10.8565 7.93855C10.721 7.93855 10.6066 7.95772 10.5133 7.99607C10.42 8.03315 10.3484 8.08492 10.2985 8.1514C10.2499 8.21788 10.2256 8.2933 10.2256 8.37768C10.2231 8.44799 10.2378 8.50936 10.2697 8.56177C10.303 8.61418 10.3484 8.65957 10.4059 8.69792C10.4634 8.73499 10.5299 8.76759 10.6053 8.79572C10.6808 8.82257 10.7613 8.84558 10.8469 8.86475L11.1998 8.94913C11.3711 8.98748 11.5283 9.03862 11.6715 9.10254C11.8147 9.16646 11.9387 9.24508 12.0435 9.3384C12.1484 9.43173 12.2295 9.54167 12.2871 9.66823C12.3459 9.7948 12.3759 9.9399 12.3772 10.1035C12.3759 10.3439 12.3146 10.5523 12.1931 10.7287C12.0729 10.9038 11.8991 11.04 11.6715 11.1371C11.4452 11.233 11.1723 11.2809 10.8527 11.2809C10.5357 11.2809 10.2595 11.2324 10.0243 11.1352C9.79034 11.038 9.60753 10.8942 9.47585 10.7037C9.34545 10.512 9.27706 10.2748 9.27067 9.99231H10.0741C10.0831 10.124 10.1208 10.2339 10.1873 10.3221C10.255 10.4091 10.3452 10.4749 10.4577 10.5197C10.5714 10.5631 10.6999 10.5849 10.8431 10.5849C10.9837 10.5849 11.1058 10.5644 11.2094 10.5235C11.3142 10.4826 11.3954 10.4257 11.4529 10.3528C11.5104 10.28 11.5392 10.1962 11.5392 10.1016C11.5392 10.0134 11.513 9.93926 11.4606 9.87917C11.4094 9.81909 11.334 9.76795 11.2343 9.72576C11.1359 9.68357 11.0151 9.64522 10.8719 9.6107L10.4442 9.50332C10.1131 9.42278 9.8517 9.29686 9.65994 9.12555C9.46818 8.95424 9.37294 8.72349 9.37422 8.43329C9.37294 8.19551 9.43622 7.98776 9.56406 7.81007C9.69318 7.63237 9.87024 7.49366 10.0952 7.39394C10.3202 7.29423 10.5759 7.24437 10.8623 7.24437C11.1538 7.24437 11.4082 7.29423 11.6255 7.39394C11.8441 7.49366 12.0141 7.63237 12.1356 7.81007C12.257 7.98776 12.3197 8.19359 12.3235 8.42754H11.5277Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const VariablesIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.4997 7.97482V8.6501C15.0469 8.6501 14.7307 8.75585 14.5512 8.96735C14.3717 9.17885 14.2819 9.52631 14.2819 10.0097V11.315C14.2819 11.7773 14.235 12.1655 14.1413 12.4797C14.0502 12.797 13.9095 13.0508 13.7193 13.2411C13.529 13.4315 13.2879 13.5689 12.9958 13.6535C12.7038 13.7381 12.3594 13.7804 11.9629 13.7804V12.7063C12.2737 12.7063 12.5162 12.6535 12.6904 12.5477C12.8645 12.445 12.9851 12.2848 13.0521 12.0673C13.1217 11.8528 13.1566 11.5794 13.1566 11.247V9.59731C13.1566 9.36467 13.1874 9.15015 13.249 8.95376C13.3106 8.75434 13.4245 8.58212 13.5906 8.4371C13.7568 8.28905 13.9939 8.17575 14.302 8.09719C14.6102 8.01561 15.0094 7.97482 15.4997 7.97482ZM11.9629 2.21906C12.3594 2.21906 12.7038 2.26135 12.9958 2.34595C13.2879 2.43055 13.529 2.56803 13.7193 2.75837C13.9095 2.94872 14.0502 3.20252 14.1413 3.51977C14.235 3.83399 14.2819 4.22224 14.2819 4.68452V5.98523C14.2819 6.47168 14.3717 6.82065 14.5512 7.03214C14.7307 7.24062 15.0469 7.34486 15.4997 7.34486V8.02467C15.0094 8.02467 14.6102 7.98389 14.302 7.90231C13.9939 7.82073 13.7568 7.70743 13.5906 7.5624C13.4245 7.41737 13.3106 7.24666 13.249 7.05027C13.1874 6.85086 13.1566 6.63483 13.1566 6.40218V4.7525C13.1566 4.41712 13.1217 4.14218 13.0521 3.92766C12.9851 3.71012 12.8645 3.54998 12.6904 3.44725C12.5162 3.34453 12.2737 3.29316 11.9629 3.29316V2.21906ZM15.4997 7.34486V8.6501H14.3864V7.34486H15.4997Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M7.14024 4.97928L8.50273 7.33122L9.87728 4.97928H11.1915L9.26637 7.99983L11.2076 11.0204H9.89335L8.50273 8.76283L7.11613 11.0204H5.79785L7.719 7.99983L5.82197 4.97928H7.14024Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M1.5 8.02467V7.34486C1.95282 7.34486 2.269 7.24062 2.44852 7.03214C2.62804 6.82065 2.7178 6.47168 2.7178 5.98523V4.68452C2.7178 4.22224 2.76335 3.83399 2.85445 3.51977C2.94823 3.20252 3.09024 2.94872 3.28048 2.75837C3.47072 2.56803 3.71187 2.43055 4.00392 2.34595C4.29598 2.26135 4.64029 2.21906 5.03684 2.21906V3.29316C4.72603 3.29316 4.48354 3.34453 4.30938 3.44725C4.13522 3.54998 4.0133 3.71012 3.94364 3.92766C3.87665 4.14218 3.84316 4.41712 3.84316 4.7525V6.40218C3.84316 6.63483 3.81234 6.85086 3.75072 7.05027C3.68909 7.24666 3.57522 7.41737 3.40909 7.5624C3.24297 7.70743 3.00584 7.82073 2.6977 7.90231C2.38957 7.98389 1.99033 8.02467 1.5 8.02467ZM5.03684 13.7804C4.64029 13.7804 4.29598 13.7381 4.00392 13.6535C3.71187 13.5689 3.47072 13.4315 3.28048 13.2411C3.09024 13.0508 2.94823 12.797 2.85445 12.4797C2.76335 12.1655 2.7178 11.7773 2.7178 11.315V10.0097C2.7178 9.52631 2.62804 9.17885 2.44852 8.96735C2.269 8.75585 1.95282 8.6501 1.5 8.6501V7.97482C1.99033 7.97482 2.38957 8.01561 2.6977 8.09719C3.00584 8.17575 3.24297 8.28905 3.40909 8.4371C3.57522 8.58212 3.68909 8.75434 3.75072 8.95376C3.81234 9.15015 3.84316 9.36467 3.84316 9.59731V11.247C3.84316 11.5794 3.87665 11.8528 3.94364 12.0673C4.0133 12.2848 4.13522 12.445 4.30938 12.5477C4.48354 12.6535 4.72603 12.7063 5.03684 12.7063V13.7804ZM1.5 8.6501V7.34486H2.6133V8.6501H1.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const WorkflowIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.24388 2.4018C6.24388 2.0394 6.53767 1.74561 6.90008 1.74561H10.0991C10.4614 1.74561 10.7553 2.0394 10.7553 2.4018V4.57546C10.7553 4.93787 10.4614 5.23166 10.0991 5.23166H9.31982V7.35469L10.0033 9.22664C9.90442 9.20146 9.80035 9.1761 9.6915 9.14986L9.62652 9.13422C9.30473 9.05687 8.92256 8.96501 8.61993 8.84491C8.5819 8.82981 8.54147 8.81292 8.49957 8.79391C8.45767 8.81292 8.41724 8.82981 8.3792 8.84491C8.07657 8.96501 7.6944 9.05687 7.37261 9.13422L7.30763 9.14986C7.19879 9.1761 7.09471 9.20146 6.99577 9.22664L7.67932 7.35469V5.23166H6.90008C6.53767 5.23166 6.24388 4.93787 6.24388 4.57546V2.4018ZM6.99577 9.22664C6.99577 9.22664 6.99578 9.22664 6.99577 9.22664L6.43283 10.7683H6.81806C7.18047 10.7683 7.47426 11.0622 7.47426 11.4245V13.5982C7.47426 13.9606 7.18047 14.2544 6.81806 14.2544H3.61909C3.25668 14.2544 2.96289 13.9606 2.96289 13.5982V11.4245C2.96289 11.0622 3.25668 10.7683 3.61909 10.7683H4.26617C4.2921 10.4663 4.32783 10.1494 4.37744 9.85171C4.43762 9.49063 4.52982 9.08135 4.68998 8.76102C4.93975 8.2615 5.44743 8.01751 5.7771 7.88788C6.14684 7.74249 6.57537 7.63889 6.92317 7.55505C7.24707 7.47696 7.49576 7.41679 7.67932 7.35469L6.99577 9.22664ZM6.43283 10.7683L6.99577 9.22664C6.75846 9.28705 6.55067 9.34646 6.37745 9.41458C6.22784 9.47341 6.1623 9.51712 6.14023 9.53254C6.09752 9.63631 6.04409 9.83055 5.99562 10.1214C5.96201 10.3231 5.93498 10.5439 5.91341 10.7683H6.43283ZM10.0033 9.22664L9.31982 7.35469C9.50338 7.41679 9.75206 7.47696 10.076 7.55505C10.4238 7.63889 10.8523 7.74249 11.2221 7.88788C11.5517 8.01751 12.0594 8.2615 12.3091 8.76102C12.4693 9.08135 12.5615 9.49063 12.6217 9.85171C12.6713 10.1494 12.707 10.4663 12.733 10.7683H13.38C13.7424 10.7683 14.0362 11.0622 14.0362 11.4245V13.5982C14.0362 13.9606 13.7424 14.2544 13.38 14.2544H10.1811C9.81867 14.2544 9.52488 13.9606 9.52488 13.5982V11.4245C9.52488 11.0622 9.81867 10.7683 10.1811 10.7683H10.5663L10.0033 9.22664ZM10.0033 9.22664L10.5663 10.7683H11.0857C11.0642 10.5439 11.0372 10.3231 11.0035 10.1214C10.9551 9.83055 10.9016 9.63631 10.8589 9.53254C10.8369 9.51712 10.7713 9.47341 10.6217 9.41458C10.4485 9.34646 10.2407 9.28705 10.0033 9.22664Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const WorkflowCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636V49.8363C6.67773 65.0322 31.894 77.351 62.9998 77.351C94.1055 77.351 119.322 65.0322 119.322 49.8363V35.1636Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636M119.322 35.1636C119.322 19.9677 94.1055 7.64893 62.9998 7.64893C31.894 7.64893 6.67773 19.9677 6.67773 35.1636M119.322 35.1636V49.8363C119.322 65.0322 94.1055 77.351 62.9998 77.351C31.894 77.351 6.67773 65.0322 6.67773 49.8363V35.1636\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.968262C28.5152 0.968262 0.55957 15.6484 0.55957 33.7573V51.2428C0.55957 69.3517 28.5152 84.0319 63.0002 84.0319C97.4853 84.0319 125.441 69.3517 125.441 51.2428V33.7573C125.441 15.6484 97.4853 0.968262 63.0002 0.968262Z\"\n stroke=\"#707070\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M74.9374 21.357C76.2127 20.7291 78.2804 20.7291 79.5557 21.357L90.8129 26.8997C92.0882 27.5276 92.0882 28.5458 90.8129 29.1737L83.1638 32.9399C81.8885 33.5678 79.8207 33.5678 78.5454 32.9399L75.8033 31.5898L68.3324 35.2682L64.1502 39.696C63.8908 39.481 63.6138 39.2568 63.3231 39.0227L63.1495 38.883C62.2893 38.1914 61.2677 37.3701 60.6254 36.6376C60.5446 36.5456 60.4618 36.4463 60.3812 36.3407C60.1669 36.3011 59.9652 36.2603 59.7782 36.2205C58.2906 35.9043 56.6225 35.4013 55.2179 34.9777L54.9342 34.8922C54.4589 34.7491 54.0034 34.6127 53.5666 34.4849L62.5594 32.4258L70.0304 28.7473L67.2882 27.3972C66.0129 26.7692 66.0129 25.7512 67.2882 25.1232L74.9374 21.357ZM53.5666 34.4849C53.5666 34.4849 53.5666 34.4849 53.5666 34.4849L46.1603 36.1808L47.516 36.8483C48.7913 37.4762 48.7912 38.4943 47.516 39.1222L39.8668 42.8884C38.5916 43.5163 36.5238 43.5164 35.2485 42.8884L23.9913 37.3457C22.7159 36.7177 22.716 35.6996 23.9913 35.0717L31.6404 31.3055C32.9156 30.6776 34.9834 30.6776 36.2587 31.3055L38.5358 32.4267C39.6899 31.9483 40.9309 31.4611 42.153 31.0313C43.6354 30.5099 45.4001 29.9605 47.091 29.683C49.7278 29.2502 52.3729 29.7072 53.9892 30.0537C55.8019 30.4425 57.6745 31.0055 59.1934 31.4628C60.6081 31.8887 61.6949 32.2154 62.5594 32.4258L53.5666 34.4849ZM46.1603 36.1808L53.5666 34.4849C52.5189 34.1784 51.5786 33.9213 50.7293 33.7392C49.9958 33.5819 49.6114 33.5441 49.4794 33.5326C48.964 33.6384 48.0924 33.8823 46.8983 34.3023C46.0703 34.5936 45.1981 34.9293 44.3325 35.2808L46.1603 36.1808ZM64.1502 39.696L68.3324 35.2682C68.7598 35.6939 69.4232 36.229 70.2883 36.9256C71.2171 37.6735 72.3605 38.5954 73.15 39.488C73.8539 40.2838 74.7818 41.5862 73.9029 42.8844C73.3394 43.717 72.2235 44.5859 71.1648 45.3159C70.2916 45.9175 69.3021 46.5286 68.3305 47.0968L70.6077 48.218C71.8829 48.8459 71.8829 49.864 70.6077 50.4919L62.9585 54.2582C61.6833 54.8861 59.6154 54.8861 58.3402 54.2582L47.083 48.7154C45.8077 48.0875 45.8077 47.0694 47.083 46.4415L54.7321 42.6752C56.0074 42.0474 58.0751 42.0473 59.3505 42.6752L60.7062 43.3428L64.1502 39.696ZM64.1502 39.696L60.7062 43.3428L62.5339 44.2427C63.2478 43.8165 63.9298 43.3871 64.5213 42.9794C65.3742 42.3914 65.8695 41.9622 66.0846 41.7085C66.0613 41.6436 65.9844 41.4543 65.6649 41.0931C65.295 40.6749 64.773 40.212 64.1502 39.696Z\"\n fill=\"#A9A9A9\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const LatencyIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const McpServerIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.53918 9.32122C6.34324 9.51508 6.02724 9.51338 5.83338 9.31744C5.63952 9.1215 5.6412 8.80551 5.83713 8.61164L10.1958 4.29931C10.7996 3.70186 10.8017 2.72852 10.2041 2.12839L10.1899 2.11428C9.58767 1.52481 8.62251 1.53208 8.0292 2.13052L2.29396 7.91536C2.0999 8.1111 1.78388 8.11246 1.58813 7.9184C1.39239 7.72433 1.39103 7.40831 1.58509 7.21257L7.32036 1.42774C8.30005 0.439581 9.89369 0.427613 10.8881 1.40094L10.9116 1.42425C11.4942 2.00929 11.7316 2.80913 11.6232 3.56922C12.389 3.44866 13.1999 3.67918 13.7961 4.26273C14.804 5.24929 14.8147 6.86824 13.82 7.86808L8.5531 13.1619C8.50045 13.2148 8.50024 13.3002 8.55263 13.3534L9.65448 14.4717C9.84794 14.668 9.8456 14.984 9.64925 15.1775C9.45291 15.3709 9.13691 15.3686 8.94345 15.1723L7.84163 14.054C7.40505 13.6109 7.40677 12.8988 7.8455 12.4579L13.1124 7.16405C13.7161 6.55727 13.7095 5.57478 13.0979 4.97606C12.4925 4.38347 11.4942 4.40725 10.8978 5.00886L6.53918 9.32122Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.84622 2.75411C9.04697 2.56188 9.36555 2.56381 9.56395 2.76076C9.76234 2.95771 9.76658 3.27625 9.57582 3.4784L9.56661 3.48794L5.25912 7.82701C4.67023 8.42022 4.672 9.37798 5.26305 9.96904C5.85624 10.5622 6.81818 10.5615 7.41052 9.9675L11.6299 5.73599L11.6395 5.72671C11.8406 5.53493 12.1592 5.53756 12.3572 5.73496C12.5583 5.93548 12.5587 6.26104 12.3582 6.46214L8.13877 10.6937C7.14498 11.6903 5.53105 11.6915 4.53584 10.6963C3.5442 9.70461 3.54127 8.09774 4.52928 7.10248L8.83677 2.76342L8.84622 2.75411Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const FolderIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M1.5 8.5V8C1.5 7.60218 1.65804 7.22064 1.93934 6.93934C2.22064 6.65804 2.60218 6.5 3 6.5H13C13.3978 6.5 13.7794 6.65804 14.0607 6.93934C14.342 7.22064 14.5 7.60218 14.5 8V8.5M8.70667 4.20667L7.29333 2.79333C7.20048 2.70037 7.09022 2.62661 6.96886 2.57628C6.84749 2.52595 6.71739 2.50003 6.586 2.5H3C2.60218 2.5 2.22064 2.65804 1.93934 2.93934C1.65804 3.22064 1.5 3.60218 1.5 4V12C1.5 12.3978 1.65804 12.7794 1.93934 13.0607C2.22064 13.342 2.60218 13.5 3 13.5H13C13.3978 13.5 13.7794 13.342 14.0607 13.0607C14.342 12.7794 14.5 12.3978 14.5 12V6C14.5 5.60218 14.342 5.22064 14.0607 4.93934C13.7794 4.65804 13.3978 4.5 13 4.5H9.414C9.14887 4.49977 8.89402 4.39426 8.70667 4.20667Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const McpCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641V49.8368C6.67773 65.0327 31.894 77.3514 62.9998 77.3514C94.1055 77.3514 119.322 65.0327 119.322 49.8368V35.1641Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641M119.322 35.1641C119.322 19.9681 94.1055 7.64941 62.9998 7.64941C31.894 7.64941 6.67773 19.9681 6.67773 35.1641M119.322 35.1641V49.8368C119.322 65.0327 94.1055 77.3514 62.9998 77.3514C31.894 77.3514 6.67773 65.0327 6.67773 49.8368V35.1641\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.96875C28.5152 0.96875 0.55957 15.6489 0.55957 33.7578V51.2433C0.55957 69.3522 28.5152 84.0323 63.0002 84.0323C97.4853 84.0323 125.441 69.3522 125.441 51.2433V33.7578C125.441 15.6489 97.4853 0.96875 63.0002 0.96875Z\"\n stroke=\"#707070\"\n />\n <path\n d=\"M51.5215 39.9726C50.5464 40.4477 48.9738 40.4435 48.009 39.9634C47.0442 39.4833 47.0526 38.709 48.0277 38.2339L69.7191 27.6672C72.7243 26.2032 72.7347 23.8181 69.7605 22.3476L69.6898 22.313C66.6927 20.8686 61.8895 20.8864 58.9368 22.3528L30.3946 36.5278C29.4288 37.0074 27.8561 37.0107 26.882 36.5352C25.9078 36.0597 25.901 35.2853 26.8668 34.8057L55.4092 20.6308C60.2847 18.2094 68.2157 18.1801 73.1645 20.5651L73.2814 20.6222C76.1808 22.0558 77.3624 24.0157 76.8227 25.8782C80.6339 25.5828 84.6694 26.1476 87.6364 27.5775C92.6525 29.9949 92.7059 33.962 87.7554 36.4119L61.5441 49.3836C61.282 49.5133 61.281 49.7227 61.5417 49.853L67.0252 52.5932C67.988 53.0743 67.9763 53.8486 66.9992 54.3226C66.0221 54.7966 64.4495 54.7909 63.4867 54.3098L58.0033 51.5695C55.8306 50.4838 55.8392 48.7391 58.0226 47.6585L84.2339 34.6868C87.2382 33.2 87.2058 30.7925 84.1617 29.3254C81.1488 27.8734 76.1811 27.9317 73.2127 29.4058L51.5215 39.9726Z\"\n fill=\"#A9A9A9\"\n />\n <path\n d=\"M63.0028 23.8809C64.0019 23.4098 65.5873 23.4146 66.5747 23.8972C67.562 24.3798 67.5831 25.1603 66.6338 25.6556L66.5879 25.679L45.1511 36.3113C42.2204 37.7649 42.2292 40.1117 45.1707 41.56C48.1228 43.0135 52.91 43.0118 55.8578 41.5563L76.8564 31.1875L76.9037 31.1648C77.9049 30.6949 79.4903 30.7013 80.4755 31.185C81.4763 31.6764 81.4785 32.4741 80.4806 32.9669L59.4821 43.3356C54.5363 45.7777 46.5044 45.7806 41.5516 43.342C36.6166 40.9121 36.602 36.9747 41.519 34.5359L62.9558 23.9037L63.0028 23.8809Z\"\n fill=\"#A9A9A9\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const ToolCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641V49.8368C6.67773 65.0327 31.894 77.3514 62.9998 77.3514C94.1055 77.3514 119.322 65.0327 119.322 49.8368V35.1641Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641M119.322 35.1641C119.322 19.9681 94.1055 7.64941 62.9998 7.64941C31.894 7.64941 6.67773 19.9681 6.67773 35.1641M119.322 35.1641V49.8368C119.322 65.0327 94.1055 77.3514 62.9998 77.3514C31.894 77.3514 6.67773 65.0327 6.67773 49.8368V35.1641\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.96875C28.5152 0.96875 0.55957 15.6489 0.55957 33.7578V51.2433C0.55957 69.3522 28.5152 84.0323 63.0002 84.0323C97.4853 84.0323 125.441 69.3522 125.441 51.2433V33.7578C125.441 15.6489 97.4853 0.96875 63.0002 0.96875Z\"\n stroke=\"#707070\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M95.8997 32.6647C98.4806 33.9355 98.4744 36.0012 95.8997 37.2689L89.6657 40.3384C87.0848 41.6091 82.8892 41.6061 80.3146 40.3384L74.0805 37.2689C71.4996 35.9981 71.5059 33.9324 74.0805 32.6647L80.3146 29.5952C82.8955 28.3244 87.091 28.3275 89.6657 29.5952L95.8997 32.6647ZM74.0805 21.9215C76.6614 23.1923 76.6552 25.258 74.0805 26.5257L67.8465 29.5952C65.2656 30.866 61.0701 30.8629 58.4954 29.5952L52.2613 26.5257C49.6804 25.255 49.6867 23.1892 52.2613 21.9215L58.4954 18.852C61.0763 17.5813 65.2718 17.5843 67.8465 18.852L74.0805 21.9215ZM74.0805 43.4079C76.6614 44.6786 76.6552 46.7444 74.0805 48.0121L67.8465 51.0816C65.2656 52.3523 61.0701 52.3493 58.4954 51.0816L52.2613 48.0121C49.6804 46.7413 49.6867 44.6756 52.2613 43.4079L58.4954 40.3384C61.0763 39.0676 65.2718 39.0707 67.8465 40.3384L74.0805 43.4079ZM52.2613 32.6647C54.8422 33.9355 54.836 36.0012 52.2613 37.2689L46.0273 40.3384C43.4464 41.6091 39.2509 41.6061 36.6762 40.3384L30.4422 37.2689C27.8613 35.9981 27.8675 33.9324 30.4422 32.6647L36.6762 29.5952C39.2571 28.3244 43.4526 28.3275 46.0273 29.5952L52.2613 32.6647Z\"\n fill=\"#A9A9A9\"\n />\n </svg>\n);\n","export const AgentNetworkCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641V49.8368C6.67773 65.0327 31.894 77.3514 62.9998 77.3514C94.1055 77.3514 119.322 65.0327 119.322 49.8368V35.1641Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641M119.322 35.1641C119.322 19.9681 94.1055 7.64941 62.9998 7.64941C31.894 7.64941 6.67773 19.9681 6.67773 35.1641M119.322 35.1641V49.8368C119.322 65.0327 94.1055 77.3514 62.9998 77.3514C31.894 77.3514 6.67773 65.0327 6.67773 49.8368V35.1641\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.96875C28.5152 0.96875 0.55957 15.6489 0.55957 33.7578V51.2433C0.55957 69.3522 28.5152 84.0323 63.0002 84.0323C97.4853 84.0323 125.441 69.3522 125.441 51.2433V33.7578C125.441 15.6489 97.4853 0.96875 63.0002 0.96875Z\"\n stroke=\"#707070\"\n />\n <g clipPath=\"url(#clip0_23333_14744)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M79.2946 17.9539C83.0143 19.7854 83.016 22.7559 79.2979 24.5879C77.0214 25.7087 73.8794 26.1385 70.9301 25.8878L67.5296 30.2202C68.0944 30.3987 68.6321 30.6075 69.1262 30.8507C71.0847 31.815 72.0009 33.0948 71.8979 34.3581L77.2504 35.1977C77.6452 34.8727 78.1174 34.5635 78.6856 34.2835C82.4066 32.4514 88.4403 32.4485 92.1623 34.2803C95.8842 36.1128 95.8805 39.0851 92.159 40.9175C88.4373 42.7488 82.4002 42.7513 78.679 40.9191C76.7415 39.9647 75.8248 38.7009 75.9073 37.4506L70.5219 36.6045C70.1354 36.9168 69.6777 37.2145 69.1295 37.4846C68.345 37.8708 67.4527 38.1705 66.5059 38.3939L67.9312 41.984C70.1507 42.0573 72.3276 42.5087 74.0244 43.3438C77.7444 45.1754 77.7467 48.1458 74.0277 49.9778C70.3071 51.8092 64.2712 51.8095 60.551 49.9778C56.8323 48.1459 56.8351 45.1755 60.5543 43.3438C61.3581 42.9482 62.2741 42.6414 63.247 42.4167L61.8282 38.8428C59.5803 38.7777 57.3696 38.3299 55.6527 37.4846C54.1264 36.7327 53.2395 35.7882 52.9666 34.8103L43.924 34.0469C43.4596 34.6259 42.7547 35.1702 41.8041 35.6385C38.0834 37.4696 32.0473 37.4701 28.3273 35.6385C24.6089 33.8068 24.6123 30.8363 28.3306 29.0046C32.0508 27.1737 38.0806 27.1737 41.8008 29.0046C43.3459 29.7653 44.2412 30.7224 44.5033 31.7129L53.5098 32.4747C53.9742 31.8832 54.6868 31.3279 55.656 30.8507C57.6687 29.8601 60.357 29.4079 62.9902 29.4892L66.5783 24.9218C66.3174 24.8179 66.0637 24.7073 65.8212 24.5879C62.1022 22.7559 62.1045 19.7856 65.8245 17.9539C69.5447 16.1235 75.5747 16.1232 79.2946 17.9539ZM38.4299 30.6643C36.5715 29.75 33.5599 29.75 31.7015 30.6643C29.8447 31.5793 29.8414 33.0638 31.6982 33.9788C33.5565 34.8938 36.5742 34.8933 38.4332 33.9788C40.2906 33.0635 40.2883 31.5793 38.4299 30.6643ZM70.6536 45.0035C68.7951 44.0893 65.7836 44.0893 63.9251 45.0035C62.0676 45.9185 62.0647 47.4029 63.9218 48.318C65.7804 49.2332 68.7979 49.2329 70.6569 48.3181C72.5142 47.4027 72.5119 45.9185 70.6536 45.0035ZM65.7553 32.5104C63.8969 31.5961 60.8853 31.5961 59.0269 32.5104C57.1685 33.4254 57.1662 34.9096 59.0236 35.8249C60.8824 36.7402 63.8998 36.7402 65.7586 35.8249C67.616 34.9096 67.6137 33.4254 65.7553 32.5104ZM88.7915 35.94C86.9338 35.0261 83.9184 35.0264 82.0564 35.9432C80.1965 36.8601 80.1945 38.3451 82.0498 39.2594C83.9067 40.1736 86.9255 40.1738 88.7882 39.2578C90.6507 38.3407 90.649 36.8546 88.7915 35.94ZM75.9238 19.6136C74.0656 18.6995 71.0538 18.6998 69.1953 19.6136C67.3369 20.5286 67.3347 22.0129 69.192 22.9282C71.0509 23.8434 74.0682 23.8434 75.9271 22.9282C77.7836 22.0128 77.7818 20.5285 75.9238 19.6136Z\"\n fill=\"#A9A9A9\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_23333_14744\">\n <rect\n width=\"59.3185\"\n height=\"59.3185\"\n fill=\"white\"\n transform=\"matrix(0.897148 0.441731 -0.897148 0.441731 65.3042 6.51953)\"\n />\n </clipPath>\n </defs>\n </svg>\n);\n","import { useCallback, useRef, useState } from 'react';\nimport { toast } from 'sonner';\n\ntype UseCopyToClipboardProps = {\n text: string;\n copyMessage?: string;\n};\n\nexport function useCopyToClipboard({ text, copyMessage = 'Copied to clipboard!' }: UseCopyToClipboardProps) {\n const [isCopied, setIsCopied] = useState(false);\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const handleCopy = useCallback(() => {\n navigator.clipboard\n .writeText(text)\n .then(() => {\n toast.success(copyMessage);\n setIsCopied(true);\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n timeoutRef.current = setTimeout(() => {\n setIsCopied(false);\n }, 2000);\n })\n .catch(() => {\n toast.error('Failed to copy to clipboard.');\n });\n }, [text, copyMessage]);\n\n return { isCopied, handleCopy };\n}\n","'use client';\n\nimport { Check, Copy } from 'lucide-react';\n\nimport { Button } from '../../components/ui/button';\nimport { useCopyToClipboard } from '../../hooks/use-copy-to-clipboard';\nimport { cn } from '../../lib/utils';\n\ntype CopyButtonProps = {\n content: string;\n copyMessage?: string;\n className?: string;\n};\n\nexport function CopyButton({ content, copyMessage, className }: CopyButtonProps) {\n const { isCopied, handleCopy } = useCopyToClipboard({\n text: content,\n copyMessage,\n });\n\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className={cn('relative h-6 w-6', className)}\n aria-label=\"Copy to clipboard\"\n onClick={handleCopy}\n >\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <Check className={cn('h-4 w-4 transition-transform ease-in-out', isCopied ? 'scale-100' : 'scale-0')} />\n </div>\n <Copy className={cn('h-4 w-4 transition-transform ease-in-out', isCopied ? 'scale-0' : 'scale-100')} />\n </Button>\n );\n}\n","import { jsonLanguage } from '@codemirror/lang-json';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport CodeMirror from '@uiw/react-codemirror';\nimport clsx from 'clsx';\nimport { useMemo } from 'react';\nimport { CopyButton } from './copy-button';\n\nexport const useCodemirrorTheme = () => {\n return useMemo(\n () =>\n draculaInit({\n settings: {\n fontFamily: 'var(--geist-mono)',\n fontSize: '0.8rem',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n background: 'transparent',\n gutterForeground: '#939393',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n }),\n [],\n );\n};\n\nexport const SyntaxHighlighter = ({ data, className }: { data: Record<string, unknown>; className?: string }) => {\n const formattedCode = JSON.stringify(data, null, 2);\n const theme = useCodemirrorTheme();\n\n return (\n <div className={clsx('rounded-md bg-surface4 p-1 font-mono relative', className)}>\n <CopyButton content={formattedCode} className=\"absolute top-2 right-2\" />\n <CodeMirror value={formattedCode} theme={theme} extensions={[jsonLanguage]} />\n </div>\n );\n};\n\nexport async function highlight(code: string, language: string) {\n const { codeToTokens, bundledLanguages } = await import('shiki');\n\n if (!(language in bundledLanguages)) return null;\n\n const { tokens } = await codeToTokens(code, {\n lang: language as keyof typeof bundledLanguages,\n defaultColor: false,\n themes: {\n light: 'github-light',\n dark: 'github-dark',\n },\n });\n\n return tokens;\n}\n","import { ToolCallContentPartComponent } from '@assistant-ui/react';\nimport { ChevronUpIcon } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { Badge } from '@/ds/components/Badge';\nimport { Icon, ToolsIcon } from '@/ds/icons';\nimport { cn } from '@/lib/utils';\nimport { SyntaxHighlighter } from '../ui/syntax-highlighter';\n\nexport const ToolFallback: ToolCallContentPartComponent = ({ toolName, argsText, result }) => {\n const [isCollapsed, setIsCollapsed] = useState(true);\n\n let argSlot;\n try {\n const parsedArgs = JSON.parse(argsText);\n argSlot = <SyntaxHighlighter data={parsedArgs} />;\n } catch {\n argSlot = <pre className=\"whitespace-pre-wrap\">{argsText}</pre>;\n }\n\n return (\n <div>\n <button onClick={() => setIsCollapsed(s => !s)} className=\"flex items-center gap-2\">\n <Icon>\n <ChevronUpIcon className={cn('transition-all', isCollapsed ? 'rotate-90' : 'rotate-180')} />\n </Icon>\n <Badge icon={<ToolsIcon className=\"text-[#ECB047]\" />}>{toolName}</Badge>\n </button>\n\n {!isCollapsed && (\n <div className=\"pt-2\">\n <div className=\"border-sm border-border1 rounded-lg bg-surface4\">\n <div className=\"px-4 border-b-sm border-border1 py-2\">\n <p className=\"font-medium pb-2\">Tool arguments</p>\n {argSlot}\n </div>\n\n {result !== undefined && (\n <div className=\"px-4 py-2\">\n <p className=\"font-medium pb-2\">Tool result</p>\n {typeof result === 'string' ? (\n <pre className=\"whitespace-pre-wrap\">{result}</pre>\n ) : (\n <SyntaxHighlighter data={result} />\n )}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n","import { ActionBarPrimitive, MessagePrimitive, ToolCallContentPartComponent, useMessage } from '@assistant-ui/react';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { FC } from 'react';\n\nimport { MarkdownText } from './markdown-text';\nimport { TooltipIconButton } from './tooltip-icon-button';\nimport { ToolFallback } from '@/components/assistant-ui/tool-fallback';\n\nexport const AssistantMessage: FC<{ ToolFallback?: ToolCallContentPartComponent }> = ({\n ToolFallback: ToolFallbackCustom,\n}) => {\n const data = useMessage();\n const isSolelyToolCall = data.content.length === 1 && data.content[0].type === 'tool-call';\n\n return (\n <MessagePrimitive.Root className=\"max-w-full\">\n <div className=\"text-icon6 text-ui-lg leading-ui-lg\">\n <MessagePrimitive.Content\n components={{\n Text: MarkdownText,\n tools: { Fallback: ToolFallbackCustom || ToolFallback },\n }}\n />\n </div>\n\n <div className=\"h-6 pt-1\">{!isSolelyToolCall && <AssistantActionBar />}</div>\n </MessagePrimitive.Root>\n );\n};\n\nconst AssistantActionBar: FC = () => {\n return (\n <ActionBarPrimitive.Root\n hideWhenRunning\n autohide=\"always\"\n autohideFloat=\"single-branch\"\n className=\"flex gap-1 items-center transition-all relative\"\n >\n {/* <MessagePrimitive.If speaking={false}>\n <ActionBarPrimitive.Speak asChild>\n <TooltipIconButton tooltip=\"Read aloud\">\n <AudioLinesIcon />\n </TooltipIconButton>\n </ActionBarPrimitive.Speak>\n </MessagePrimitive.If>\n <MessagePrimitive.If speaking>\n <ActionBarPrimitive.StopSpeaking asChild>\n <TooltipIconButton tooltip=\"Stop\">\n <StopCircleIcon />\n </TooltipIconButton>\n </ActionBarPrimitive.StopSpeaking>\n </MessagePrimitive.If> */}\n <ActionBarPrimitive.Copy asChild>\n <TooltipIconButton tooltip=\"Copy\" className=\"bg-transparent text-icon3 hover:text-icon6\">\n <MessagePrimitive.If copied>\n <CheckIcon />\n </MessagePrimitive.If>\n <MessagePrimitive.If copied={false}>\n <CopyIcon />\n </MessagePrimitive.If>\n </TooltipIconButton>\n </ActionBarPrimitive.Copy>\n {/* <ActionBarPrimitive.Reload asChild>\n <TooltipIconButton tooltip=\"Refresh\">\n <RefreshCwIcon />\n </TooltipIconButton>\n </ActionBarPrimitive.Reload> */}\n </ActionBarPrimitive.Root>\n );\n};\n","import * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport clsx from 'clsx';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={clsx('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import { useState } from 'react';\n\nimport { useComposerRuntime } from '@assistant-ui/react';\nimport { useEffect } from 'react';\n\nexport const useHasAttachments = () => {\n const composer = useComposerRuntime();\n const [hasAttachments, setHasAttachments] = useState(false);\n\n useEffect(() => {\n composer.subscribe(() => {\n const attachments = composer.getState().attachments;\n setHasAttachments(attachments.length > 0);\n });\n }, [composer]);\n\n return hasAttachments;\n};\n","'use client';\n\nimport { AttachmentPrimitive, ComposerPrimitive, MessagePrimitive, useAttachment } from '@assistant-ui/react';\nimport { TooltipProvider } from '@radix-ui/react-tooltip';\nimport { CircleXIcon, FileIcon, FileText, PaperclipIcon } from 'lucide-react';\nimport { PropsWithChildren, useEffect, useState, type FC } from 'react';\n\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { Dialog, DialogTitle, DialogTrigger, DialogOverlay, DialogPortal, DialogContent } from '@/components/ui/dialog';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { useShallow } from 'zustand/shallow';\nimport { Icon } from '@/ds/icons';\nimport { useHasAttachments } from './use-has-attachments';\n\nconst useFileSrc = (file: File | undefined) => {\n const [src, setSrc] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n if (!file) {\n setSrc(undefined);\n return;\n }\n\n const objectUrl = URL.createObjectURL(file);\n setSrc(objectUrl);\n\n return () => {\n URL.revokeObjectURL(objectUrl);\n };\n }, [file]);\n\n return src;\n};\n\nconst useAttachmentSrc = () => {\n const { file, src } = useAttachment(\n useShallow((a): { file?: File; src?: string } => {\n if (a.type !== 'image') return {};\n if (a.file) return { file: a.file };\n const src = a.content?.filter(c => c.type === 'image')[0]?.image;\n if (!src) return {};\n return { src };\n }),\n );\n\n return useFileSrc(file) ?? src;\n};\n\ntype AttachmentPreviewProps = {\n src: string;\n};\n\nconst AttachmentPreview: FC<AttachmentPreviewProps> = ({ src }) => {\n return (\n <div className=\"overflow-hidden w-full\">\n <img src={src} className=\"object-contain aspect-ratio h-full w-full\" alt=\"Preview\" />\n </div>\n );\n};\n\nconst AttachmentPreviewDialog: FC<PropsWithChildren> = ({ children }) => {\n const src = useAttachmentSrc();\n\n if (!src) return children;\n\n return (\n <Dialog>\n <DialogTrigger className=\"hover:bg-accent/50 cursor-pointer transition-colors\" asChild>\n {children}\n </DialogTrigger>\n <DialogPortal>\n <DialogOverlay />\n\n <DialogContent className=\"max-w-5xl w-full max-h-[80%]\">\n <DialogTitle className=\"aui-sr-only\">Image Attachment Preview</DialogTitle>\n <AttachmentPreview src={src} />\n </DialogContent>\n </DialogPortal>\n </Dialog>\n );\n};\n\nconst AttachmentThumbnail: FC = () => {\n const isImage = useAttachment(a => a.type === 'image');\n const document = useAttachment(a => (a.type === 'document' ? a : undefined));\n const src = useAttachmentSrc();\n const canRemove = useAttachment(a => a.source !== 'message');\n\n return (\n <TooltipProvider>\n <Tooltip>\n <AttachmentPrimitive.Root className=\"relative\">\n <AttachmentPreviewDialog>\n <TooltipTrigger asChild>\n <div className=\"h-full w-full aspect-ratio overflow-hidden rounded-lg\">\n {isImage ? (\n <div className=\"rounded-lg border-sm border-border1 overflow-hidden\">\n <img src={src} className=\"object-cover aspect-ratio size-16\" alt=\"Preview\" height={64} width={64} />\n </div>\n ) : document?.contentType === 'application/pdf' ? (\n <div className=\"rounded-lg border-sm border-border1 flex items-center justify-center\">\n <FileText className=\"text-accent2\" />\n </div>\n ) : (\n <div className=\"rounded-lg border-sm border-border1 flex items-center justify-center\">\n <FileIcon className=\"text-icon3\" />\n </div>\n )}\n </div>\n </TooltipTrigger>\n </AttachmentPreviewDialog>\n {canRemove && <AttachmentRemove />}\n </AttachmentPrimitive.Root>\n <TooltipContent side=\"top\">\n <AttachmentPrimitive.Name />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n\nconst AttachmentRemove: FC = () => {\n return (\n <AttachmentPrimitive.Remove asChild>\n <TooltipIconButton\n tooltip=\"Remove file\"\n className=\"absolute -right-3 -top-3 hover:bg-transparent rounded-full bg-surface1 rounded-full p-1\"\n side=\"top\"\n >\n <Icon>\n <CircleXIcon />\n </Icon>\n </TooltipIconButton>\n </AttachmentPrimitive.Remove>\n );\n};\n\nexport const UserMessageAttachments: FC = () => {\n return <MessagePrimitive.Attachments components={{ Attachment: InMessageAttachment }} />;\n};\n\nconst InMessageAttachment = () => {\n const isImage = useAttachment(a => a.type === 'image');\n const document = useAttachment(a => (a.type === 'document' ? a : undefined));\n const src = useAttachmentSrc();\n\n return (\n <TooltipProvider>\n <Tooltip>\n <AttachmentPrimitive.Root className=\"relative pt-4\">\n <AttachmentPreviewDialog>\n <TooltipTrigger asChild>\n <div className=\"h-full w-full aspect-ratio overflow-hidden rounded-lg\">\n {isImage ? (\n <div className=\"rounded-lg border-sm border-border1 overflow-hidden\">\n <img src={src} className=\"object-cover aspect-ratio max-h-[140px] max-w-[320px]\" alt=\"Preview\" />\n </div>\n ) : document?.contentType === 'application/pdf' ? (\n <div className=\"rounded-lg border-sm border-border1 flex items-center justify-center p-4\">\n <FileText className=\"text-accent2\" />\n </div>\n ) : (\n <div className=\"rounded-lg border-sm border-border1 flex items-center justify-center p-4\">\n <FileIcon className=\"text-icon3\" />\n </div>\n )}\n </div>\n </TooltipTrigger>\n </AttachmentPreviewDialog>\n </AttachmentPrimitive.Root>\n <TooltipContent side=\"top\">\n <AttachmentPrimitive.Name />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n\nexport const ComposerAttachments: FC = () => {\n const hasAttachments = useHasAttachments();\n\n if (!hasAttachments) return null;\n\n return (\n <div className=\"flex w-full flex-row items-center gap-4 h-24\">\n <ComposerPrimitive.Attachments components={{ Attachment: AttachmentThumbnail }} />\n </div>\n );\n};\n\nexport const ComposerAddAttachment: FC = () => {\n return (\n <ComposerPrimitive.AddAttachment asChild>\n <TooltipIconButton\n className=\"my-2.5 size-8 p-2 transition-opacity ease-in\"\n tooltip=\"Add Attachment\"\n variant=\"ghost\"\n >\n <PaperclipIcon />\n </TooltipIconButton>\n </ComposerPrimitive.AddAttachment>\n );\n};\n","import { MessagePrimitive } from '@assistant-ui/react';\nimport { UserMessageAttachments } from './attachment';\n\nexport const UserMessage = () => {\n return (\n <MessagePrimitive.Root className=\"w-full flex items-end pb-4 flex-col\">\n {/* <UserActionBar /> */}\n\n <div className=\"max-w-[366px] px-5 py-3 text-icon6 text-ui-lg leading-ui-lg rounded-lg bg-surface3\">\n <MessagePrimitive.Content />\n </div>\n\n <UserMessageAttachments />\n\n {/* <BranchPicker className=\"col-span-full col-start-1 row-start-3 -mr-1 justify-end\" /> */}\n </MessagePrimitive.Root>\n );\n};\n","import React, { useRef } from 'react';\n\nexport interface UseAutoscrollOptions {\n enabled?: boolean;\n}\n\nexport const useAutoscroll = (ref: React.RefObject<HTMLElement | null>, { enabled = true }: UseAutoscrollOptions) => {\n const shouldScrollRef = useRef(enabled);\n\n React.useEffect(() => {\n if (!enabled) return;\n if (!ref?.current) return;\n\n const area = ref.current;\n\n const observer = new MutationObserver(() => {\n if (shouldScrollRef.current) {\n area.scrollTo({ top: area.scrollHeight, behavior: 'smooth' });\n }\n });\n\n observer.observe(area, {\n childList: true, // observe direct children changes\n subtree: true, // observe all descendants\n characterData: true, // observe text content changes\n });\n\n const handleScroll = (e: Event) => {\n const scrollElement = e.target as HTMLElement;\n const currentPosition = scrollElement.scrollTop + scrollElement.clientHeight;\n const totalHeight = scrollElement.scrollHeight;\n const isAtEnd = currentPosition >= totalHeight - 1;\n\n if (isAtEnd) {\n shouldScrollRef.current = true;\n } else {\n shouldScrollRef.current = false;\n }\n };\n\n area.addEventListener('scroll', handleScroll);\n\n return () => {\n area.removeEventListener('scroll', handleScroll);\n observer.disconnect();\n };\n }, [enabled, ref]);\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { FontSizes } from '../../tokens';\n\nexport interface TxtProps extends React.HTMLAttributes<HTMLDivElement | HTMLLabelElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'label';\n variant?: keyof typeof FontSizes;\n font?: 'mono';\n htmlFor?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nconst variants = {\n 'header-md': 'text-header-md leading-header-md',\n 'ui-lg': 'text-ui-lg leading-ui-lg',\n 'ui-md': 'text-ui-md leading-ui-md',\n 'ui-sm': 'text-ui-sm leading-ui-sm',\n 'ui-xs': 'text-ui-xs leading-ui-xs',\n};\n\nconst fonts = {\n mono: 'font-mono',\n};\n\nexport const Txt = ({ as: Root = 'p', className, variant = 'ui-md', font, ...props }: TxtProps) => {\n return <Root className={clsx(variants[variant], font && fonts[font], className)} {...props} />;\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport interface SpeechRecognitionState {\n isListening: boolean;\n transcript: string;\n error: string | null;\n}\n\nexport interface UseSpeechRecognitionArgs {\n language?: string;\n}\n\nexport const useSpeechRecognition = ({ language = 'en-US' }: UseSpeechRecognitionArgs = {}) => {\n const speechRecognitionRef = useRef<any>(null);\n const [state, setState] = useState<SpeechRecognitionState>({\n isListening: false,\n transcript: '',\n error: null,\n });\n\n const start = () => {\n if (!speechRecognitionRef.current) return;\n speechRecognitionRef.current.start();\n };\n\n const stop = () => {\n if (!speechRecognitionRef.current) return;\n speechRecognitionRef.current.stop();\n };\n\n useEffect(() => {\n if (!('webkitSpeechRecognition' in window) && !('SpeechRecognition' in window)) {\n setState(prev => ({ ...prev, error: 'Speech Recognition not supported in this browser' }));\n return;\n }\n\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition;\n const recognition = new SpeechRecognition();\n speechRecognitionRef.current = recognition;\n\n // Configuration\n recognition.continuous = true; // Keep listening\n recognition.lang = language; // Language\n\n // Event handlers\n recognition.onstart = () => {\n setState(prev => ({ ...prev, isListening: true }));\n };\n\n recognition.onresult = (event: any) => {\n let finalTranscript = '';\n\n for (let i = event.resultIndex; i < event.results.length; i++) {\n const transcript = event.results[i][0].transcript;\n if (event.results[i].isFinal) {\n finalTranscript += transcript + ' ';\n }\n }\n\n setState(prev => ({ ...prev, transcript: finalTranscript }));\n };\n\n recognition.onerror = (event: any) => {\n setState(prev => ({ ...prev, error: `Error: ${event.error}` }));\n };\n\n recognition.onend = () => setState(prev => ({ ...prev, isListening: false }));\n }, [language]);\n\n return {\n ...state,\n start,\n stop,\n };\n};\n","import {\n ComposerPrimitive,\n MessagePrimitive,\n ThreadPrimitive,\n ToolCallContentPartComponent,\n useComposerRuntime,\n} from '@assistant-ui/react';\nimport { ArrowUp, Mic, PlusIcon } from 'lucide-react';\nimport type { FC } from 'react';\n\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar';\nimport { Button } from '@/components/ui/button';\n\nimport { AssistantMessage } from './assistant-message';\nimport { UserMessage } from './user-message';\nimport { useEffect, useRef } from 'react';\nimport { useAutoscroll } from '@/hooks/use-autoscroll';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon, InfoIcon } from '@/ds/icons';\nimport { useSpeechRecognition } from '@/hooks/use-speech-recognition';\nimport { ComposerAttachments } from './attachment';\n\nexport interface ThreadProps {\n ToolFallback?: ToolCallContentPartComponent;\n agentName?: string;\n hasMemory?: boolean;\n showFileSupport?: boolean;\n}\n\nexport const Thread = ({ ToolFallback, agentName, hasMemory, showFileSupport }: ThreadProps) => {\n const areaRef = useRef<HTMLDivElement>(null);\n useAutoscroll(areaRef, { enabled: true });\n\n const WrappedAssistantMessage = (props: MessagePrimitive.Root.Props) => {\n return <AssistantMessage {...props} ToolFallback={ToolFallback} />;\n };\n\n return (\n <ThreadWrapper>\n <ThreadPrimitive.Viewport ref={areaRef} autoScroll={false} className=\"overflow-y-scroll scroll-smooth h-full\">\n <ThreadWelcome agentName={agentName} />\n\n <div className=\"max-w-[568px] w-full mx-auto px-4 pb-7\">\n <ThreadPrimitive.Messages\n components={{\n UserMessage: UserMessage,\n EditComposer: EditComposer,\n AssistantMessage: WrappedAssistantMessage,\n }}\n />\n </div>\n\n <ThreadPrimitive.If empty={false}>\n <div />\n </ThreadPrimitive.If>\n </ThreadPrimitive.Viewport>\n\n <Composer hasMemory={hasMemory} showFileSupport={showFileSupport} />\n </ThreadWrapper>\n );\n};\n\nconst ThreadWrapper = ({ children }: { children: React.ReactNode }) => {\n return (\n <ThreadPrimitive.Root className=\"grid grid-rows-[1fr_auto] h-full overflow-y-auto\">{children}</ThreadPrimitive.Root>\n );\n};\n\nexport interface ThreadWelcomeProps {\n agentName?: string;\n}\n\nconst ThreadWelcome = ({ agentName }: ThreadWelcomeProps) => {\n const safeAgentName = agentName ?? '';\n const words = safeAgentName.split(' ') ?? [];\n\n let initials = 'A';\n\n if (words.length === 2) {\n initials = `${words[0][0]}${words[1][0]}`;\n } else if (safeAgentName.length > 0) {\n initials = `${safeAgentName[0]}`;\n } else {\n initials = 'A';\n }\n\n return (\n <ThreadPrimitive.Empty>\n <div className=\"flex w-full flex-grow flex-col items-center justify-center\">\n <Avatar>\n <AvatarFallback>{initials}</AvatarFallback>\n </Avatar>\n <p className=\"mt-4 font-medium\">How can I help you today?</p>\n </div>\n </ThreadPrimitive.Empty>\n );\n};\n\nconst Composer: FC<{ hasMemory?: boolean; showFileSupport?: boolean }> = ({ hasMemory, showFileSupport }) => {\n return (\n <div className=\"mx-4\">\n <ComposerPrimitive.Root>\n <div className=\"max-w-[568px] w-full mx-auto px-2 py-3\">\n <ComposerAttachments />\n </div>\n\n <div className=\"bg-surface3 rounded-lg border-sm border-border1 py-4 mt-auto max-w-[568px] w-full mx-auto px-4\">\n <ComposerPrimitive.Input asChild className=\"w-full\">\n <textarea\n className=\"text-ui-lg leading-ui-lg placeholder:text-icon3 text-icon6 bg-transparent focus:outline-none resize-none\"\n autoFocus\n placeholder=\"Enter your message...\"\n name=\"\"\n id=\"\"\n ></textarea>\n </ComposerPrimitive.Input>\n <div className=\"flex justify-end gap-2\">\n <SpeechInput />\n <ComposerAction showFileSupport={showFileSupport} />\n </div>\n </div>\n </ComposerPrimitive.Root>\n\n {!hasMemory && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 flex gap-2 pt-1 max-w-[568px] w-full mx-auto border-t items-start\">\n <Icon className=\"transform translate-y-[0.1rem]\">\n <InfoIcon />\n </Icon>\n Memory is not enabled. The conversation will not be persisted.\n </Txt>\n )}\n </div>\n );\n};\n\nconst SpeechInput = () => {\n const composerRuntime = useComposerRuntime();\n const { start, stop, isListening, transcript } = useSpeechRecognition();\n\n useEffect(() => {\n if (!transcript) return;\n\n composerRuntime.setText(transcript);\n }, [composerRuntime, transcript]);\n\n return (\n <TooltipIconButton\n type=\"button\"\n tooltip={isListening ? 'Stop dictation' : 'Start dictation'}\n variant=\"ghost\"\n className=\"rounded-full\"\n onClick={() => (isListening ? stop() : start())}\n >\n {isListening ? <CircleStopIcon /> : <Mic className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />}\n </TooltipIconButton>\n );\n};\n\nconst ComposerAction: FC<{ showFileSupport?: boolean }> = ({ showFileSupport }) => {\n return (\n <>\n {showFileSupport && (\n <ComposerPrimitive.AddAttachment asChild>\n <TooltipIconButton tooltip=\"Add attachment\" variant=\"ghost\" className=\"rounded-full\">\n <PlusIcon className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />\n </TooltipIconButton>\n </ComposerPrimitive.AddAttachment>\n )}\n\n <ThreadPrimitive.If running={false}>\n <ComposerPrimitive.Send asChild>\n <TooltipIconButton\n tooltip=\"Send\"\n variant=\"default\"\n className=\"rounded-full border-sm border-[#363636] bg-[#292929]\"\n >\n <ArrowUp className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />\n </TooltipIconButton>\n </ComposerPrimitive.Send>\n </ThreadPrimitive.If>\n <ThreadPrimitive.If running>\n <ComposerPrimitive.Cancel asChild>\n <TooltipIconButton tooltip=\"Cancel\" variant=\"default\">\n <CircleStopIcon />\n </TooltipIconButton>\n </ComposerPrimitive.Cancel>\n </ThreadPrimitive.If>\n </>\n );\n};\n\nconst EditComposer: FC = () => {\n return (\n <ComposerPrimitive.Root>\n <ComposerPrimitive.Input />\n\n <div>\n <ComposerPrimitive.Cancel asChild>\n <Button variant=\"ghost\">Cancel</Button>\n </ComposerPrimitive.Cancel>\n <ComposerPrimitive.Send asChild>\n <Button>Send</Button>\n </ComposerPrimitive.Send>\n </div>\n </ComposerPrimitive.Root>\n );\n};\n\nconst CircleStopIcon = () => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" width=\"16\" height=\"16\">\n <rect width=\"10\" height=\"10\" x=\"3\" y=\"3\" rx=\"2\" />\n </svg>\n );\n};\n","export const fileToBase64 = async (file: File): Promise<string> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => {\n const result = reader.result;\n if (typeof result === 'string') {\n resolve(result);\n } else {\n reject(new Error('Failed to convert file to base64.'));\n }\n };\n\n reader.onerror = error => {\n reject(error);\n };\n\n reader.readAsDataURL(file);\n });\n};\n","import { AttachmentAdapter, PendingAttachment, CompleteAttachment } from '@assistant-ui/react';\n\nexport class PDFAttachmentAdapter implements AttachmentAdapter {\n public accept = 'application/pdf';\n\n async add({ file }: { file: File }): Promise<PendingAttachment> {\n // Validate file size\n const maxSize = 20 * 1024 * 1024; // 20MB limit\n if (file.size > maxSize) {\n throw new Error('PDF size exceeds 20MB limit');\n }\n\n return {\n id: crypto.randomUUID(),\n type: 'document',\n name: file.name,\n file,\n status: {\n type: 'running',\n reason: 'uploading',\n progress: 0,\n },\n contentType: 'application/pdf',\n };\n }\n\n async send(attachment: PendingAttachment): Promise<CompleteAttachment> {\n // Option 1: Extract text from PDF (requires pdf parsing library)\n // const text = await this.extractTextFromPDF(attachment.file);\n\n // Option 2: Convert to base64 for API processing\n const base64Data = await this.fileToBase64(attachment.file);\n\n return {\n id: attachment.id,\n type: 'document',\n name: attachment.name,\n content: [\n {\n type: 'text',\n text: base64Data,\n },\n ],\n status: { type: 'complete' },\n contentType: 'application/pdf',\n };\n }\n\n async remove(attachment: PendingAttachment): Promise<void> {\n // Cleanup if needed\n }\n\n private async fileToBase64(file: File): Promise<string> {\n const arrayBuffer = await file.arrayBuffer();\n const bytes = new Uint8Array(arrayBuffer);\n let binary = '';\n bytes.forEach(byte => {\n binary += String.fromCharCode(byte);\n });\n return btoa(binary);\n }\n\n // Optional: Extract text from PDF using a library like pdf.js\n private async extractTextFromPDF(file: File): Promise<string> {\n // Implementation would use pdf.js or similar\n // This is a placeholder\n return 'Extracted PDF text content';\n }\n}\n","'use client';\n\nimport {\n useExternalStoreRuntime,\n ThreadMessageLike,\n AppendMessage,\n AssistantRuntimeProvider,\n SimpleImageAttachmentAdapter,\n CompositeAttachmentAdapter,\n SimpleTextAttachmentAdapter,\n} from '@assistant-ui/react';\nimport { useState, ReactNode, useEffect } from 'react';\nimport { RuntimeContext } from '@mastra/core/di';\n\nimport { ChatProps } from '@/types';\n\nimport { CoreUserMessage } from '@mastra/core';\nimport { fileToBase64 } from '@/lib/file';\nimport { useMastraClient } from '@/contexts/mastra-client-context';\nimport { PDFAttachmentAdapter } from '@/components/assistant-ui/attachment-adapters/pdfs-adapter';\n\nconst convertMessage = (message: ThreadMessageLike): ThreadMessageLike => {\n return message;\n};\n\nconst convertToAIAttachments = async (attachments: AppendMessage['attachments']): Promise<Array<CoreUserMessage>> => {\n const promises = attachments\n .filter(attachment => attachment.type === 'image' || attachment.type === 'document')\n .map(async attachment => {\n if (attachment.type === 'document') {\n if (attachment.contentType === 'application/pdf') {\n return {\n role: 'user' as const,\n content: [\n {\n type: 'file' as const,\n // @ts-expect-error - TODO: fix this type issue somehow\n data: attachment.content?.[0]?.text || '',\n mimeType: attachment.contentType,\n filename: attachment.name,\n },\n ],\n };\n }\n\n return {\n role: 'user' as const,\n // @ts-expect-error - TODO: fix this type issue somehow\n content: attachment.content[0]?.text || '',\n };\n }\n\n return {\n role: 'user' as const,\n\n content: [\n {\n type: 'image' as const,\n image: await fileToBase64(attachment.file!),\n mimeType: attachment.file!.type,\n },\n ],\n };\n });\n\n return Promise.all(promises);\n};\n\nexport function MastraRuntimeProvider({\n children,\n agentId,\n initialMessages,\n agentName,\n memory,\n threadId,\n refreshThreadList,\n modelSettings = {},\n chatWithGenerate,\n runtimeContext,\n}: Readonly<{\n children: ReactNode;\n}> &\n ChatProps) {\n const [isRunning, setIsRunning] = useState(false);\n const [messages, setMessages] = useState<ThreadMessageLike[]>([]);\n const [currentThreadId, setCurrentThreadId] = useState<string | undefined>(threadId);\n\n const { frequencyPenalty, presencePenalty, maxRetries, maxSteps, maxTokens, temperature, topK, topP, instructions } =\n modelSettings;\n\n const runtimeContextInstance = new RuntimeContext();\n Object.entries(runtimeContext ?? {}).forEach(([key, value]) => {\n runtimeContextInstance.set(key, value);\n });\n\n useEffect(() => {\n const hasNewInitialMessages = initialMessages && initialMessages?.length > messages?.length;\n if (\n messages.length === 0 ||\n currentThreadId !== threadId ||\n (hasNewInitialMessages && currentThreadId === threadId)\n ) {\n if (initialMessages && threadId && memory) {\n const convertedMessages: ThreadMessageLike[] = initialMessages\n ?.map((message: any) => {\n const toolInvocationsAsContentParts = (message.toolInvocations || []).map((toolInvocation: any) => ({\n type: 'tool-call',\n toolCallId: toolInvocation?.toolCallId,\n toolName: toolInvocation?.toolName,\n args: toolInvocation?.args,\n result: toolInvocation?.result,\n }));\n\n const attachmentsAsContentParts = (message.experimental_attachments || []).map((image: any) => ({\n type: image.contentType.startsWith(`image/`)\n ? 'image'\n : image.contentType.startsWith(`audio/`)\n ? 'audio'\n : 'file',\n mimeType: image.contentType,\n image: image.url,\n }));\n\n return {\n ...message,\n content: [\n ...(typeof message.content === 'string' ? [{ type: 'text', text: message.content }] : []),\n ...toolInvocationsAsContentParts,\n ...attachmentsAsContentParts,\n ],\n };\n })\n .filter(Boolean);\n setMessages(convertedMessages);\n setCurrentThreadId(threadId);\n }\n }\n }, [initialMessages, threadId, memory]);\n\n const mastra = useMastraClient();\n\n const agent = mastra.getAgent(agentId);\n\n const onNew = async (message: AppendMessage) => {\n if (message.content[0]?.type !== 'text') throw new Error('Only text messages are supported');\n\n const attachments = await convertToAIAttachments(message.attachments);\n\n const input = message.content[0].text;\n setMessages(currentConversation => [\n ...currentConversation,\n { role: 'user', content: input, attachments: message.attachments },\n ]);\n setIsRunning(true);\n\n try {\n if (chatWithGenerate) {\n const generateResponse = await agent.generate({\n messages: [\n {\n role: 'user',\n content: input,\n },\n ...attachments,\n ],\n runId: agentId,\n frequencyPenalty,\n presencePenalty,\n maxRetries,\n maxSteps,\n maxTokens,\n temperature,\n topK,\n topP,\n instructions,\n runtimeContext: runtimeContextInstance,\n ...(memory ? { threadId, resourceId: agentId } : {}),\n });\n if (generateResponse.response) {\n const latestMessage = generateResponse.response.messages.reduce(\n (acc, message) => {\n const _content = Array.isArray(acc.content) ? acc.content : [];\n if (typeof message.content === 'string') {\n return {\n ...acc,\n content: [\n ..._content,\n {\n type: 'text',\n text: message.content,\n },\n ],\n } as ThreadMessageLike;\n }\n if (message.role === 'assistant') {\n const toolCallContent = Array.isArray(message.content)\n ? message.content.find(content => content.type === 'tool-call')\n : undefined;\n\n if (toolCallContent) {\n const newContent = _content.map(c => {\n if (c.type === 'tool-call' && c.toolCallId === toolCallContent?.toolCallId) {\n return { ...c, ...toolCallContent };\n }\n return c;\n });\n\n const containsToolCall = newContent.some(c => c.type === 'tool-call');\n return {\n ...acc,\n content: containsToolCall ? newContent : [..._content, toolCallContent],\n } as ThreadMessageLike;\n }\n\n const textContent = Array.isArray(message.content)\n ? message.content.find(content => content.type === 'text' && content.text)\n : undefined;\n\n if (textContent) {\n return {\n ...acc,\n content: [..._content, textContent],\n } as ThreadMessageLike;\n }\n }\n\n if (message.role === 'tool') {\n const toolResult = Array.isArray(message.content)\n ? message.content.find(content => content.type === 'tool-result')\n : undefined;\n\n if (toolResult) {\n const newContent = _content.map(c => {\n if (c.type === 'tool-call' && c.toolCallId === toolResult?.toolCallId) {\n return { ...c, result: toolResult.result };\n }\n return c;\n });\n const containsToolCall = newContent.some(c => c.type === 'tool-call');\n\n return {\n ...acc,\n content: containsToolCall\n ? newContent\n : [\n ..._content,\n { type: 'tool-result', toolCallId: toolResult.toolCallId, result: toolResult.result },\n ],\n } as ThreadMessageLike;\n }\n\n return {\n ...acc,\n content: [..._content, toolResult],\n } as ThreadMessageLike;\n }\n return acc;\n },\n { role: 'assistant', content: [] } as ThreadMessageLike,\n );\n setMessages(currentConversation => [...currentConversation, latestMessage]);\n }\n } else {\n const response = await agent.stream({\n messages: [\n {\n role: 'user',\n content: input,\n },\n ...attachments,\n ],\n runId: agentId,\n frequencyPenalty,\n presencePenalty,\n maxRetries,\n maxSteps,\n maxTokens,\n temperature,\n topK,\n topP,\n instructions,\n runtimeContext: runtimeContextInstance,\n ...(memory ? { threadId, resourceId: agentId } : {}),\n });\n\n if (!response.body) {\n throw new Error('No response body');\n }\n\n let content = '';\n let assistantMessageAdded = false;\n let assistantToolCallAddedForUpdater = false;\n let assistantToolCallAddedForContent = false;\n\n function updater() {\n setMessages(currentConversation => {\n const message: ThreadMessageLike = {\n role: 'assistant',\n content: [{ type: 'text', text: content }],\n };\n\n if (!assistantMessageAdded) {\n assistantMessageAdded = true;\n if (assistantToolCallAddedForUpdater) {\n assistantToolCallAddedForUpdater = false;\n }\n return [...currentConversation, message];\n }\n\n if (assistantToolCallAddedForUpdater) {\n // add as new message item in messages array if tool call was added\n assistantToolCallAddedForUpdater = false;\n return [...currentConversation, message];\n }\n return [...currentConversation.slice(0, -1), message];\n });\n }\n\n await response.processDataStream({\n onTextPart(value) {\n if (assistantToolCallAddedForContent) {\n // start new content value to add as next message item in messages array\n assistantToolCallAddedForContent = false;\n content = value;\n } else {\n content += value;\n }\n updater();\n },\n async onToolCallPart(value) {\n // Update the messages state\n setMessages(currentConversation => {\n // Get the last message (should be the assistant's message)\n const lastMessage = currentConversation[currentConversation.length - 1];\n\n // Only process if the last message is from the assistant\n if (lastMessage && lastMessage.role === 'assistant') {\n // Create a new message with the tool call part\n const updatedMessage: ThreadMessageLike = {\n ...lastMessage,\n content: Array.isArray(lastMessage.content)\n ? [\n ...lastMessage.content,\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ]\n : [\n ...(typeof lastMessage.content === 'string'\n ? [{ type: 'text', text: lastMessage.content }]\n : []),\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ],\n };\n\n assistantToolCallAddedForUpdater = true;\n assistantToolCallAddedForContent = true;\n\n // Replace the last message with the updated one\n return [...currentConversation.slice(0, -1), updatedMessage];\n }\n\n // If there's no assistant message yet, create one\n const newMessage: ThreadMessageLike = {\n role: 'assistant',\n content: [\n { type: 'text', text: content },\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ],\n };\n assistantToolCallAddedForUpdater = true;\n assistantToolCallAddedForContent = true;\n return [...currentConversation, newMessage];\n });\n },\n async onToolResultPart(value: any) {\n // Update the messages state\n setMessages(currentConversation => {\n // Get the last message (should be the assistant's message)\n const lastMessage = currentConversation[currentConversation.length - 1];\n\n // Only process if the last message is from the assistant and has content array\n if (lastMessage && lastMessage.role === 'assistant' && Array.isArray(lastMessage.content)) {\n // Find the tool call content part that this result belongs to\n const updatedContent = lastMessage.content.map(part => {\n if (typeof part === 'object' && part.type === 'tool-call' && part.toolCallId === value.toolCallId) {\n return {\n ...part,\n result: value.result,\n };\n }\n return part;\n });\n\n // Create a new message with the updated content\n const updatedMessage: ThreadMessageLike = {\n ...lastMessage,\n content: updatedContent,\n };\n // Replace the last message with the updated one\n return [...currentConversation.slice(0, -1), updatedMessage];\n }\n return currentConversation;\n });\n },\n onErrorPart(error) {\n throw new Error(error);\n },\n });\n }\n\n setIsRunning(false);\n setTimeout(() => {\n refreshThreadList?.();\n }, 500);\n } catch (error) {\n console.error('Error occurred in MastraRuntimeProvider', error);\n setIsRunning(false);\n setMessages(currentConversation => [\n ...currentConversation,\n { role: 'assistant', content: [{ type: 'text', text: `Error: ${error}` as string }] },\n ]);\n }\n };\n\n const runtime = useExternalStoreRuntime<any>({\n isRunning,\n messages,\n convertMessage,\n onNew,\n adapters: {\n attachments: new CompositeAttachmentAdapter([\n new SimpleImageAttachmentAdapter(),\n new SimpleTextAttachmentAdapter(),\n new PDFAttachmentAdapter(),\n ]),\n },\n });\n\n return <AssistantRuntimeProvider runtime={runtime}> {children} </AssistantRuntimeProvider>;\n}\n","import { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\nimport { ModelSettings } from '../types';\n\ninterface AgentStore {\n modelSettings: Record<string, ModelSettings | null>;\n setModelSettings: (modelSettings: Record<string, ModelSettings | null>) => void;\n chatWithGenerate: Record<string, boolean>;\n setChatWithGenerate: (chatWithGenerate: Record<string, boolean>) => void;\n}\n\nexport const useAgentStore = create<AgentStore>()(\n persist(\n set => ({\n modelSettings: {},\n setModelSettings: modelSettings =>\n set(state => ({ modelSettings: { ...state.modelSettings, ...modelSettings } })),\n chatWithGenerate: {},\n setChatWithGenerate: chatWithGenerate =>\n set(state => ({ chatWithGenerate: { ...state.chatWithGenerate, ...chatWithGenerate } })),\n }),\n {\n name: 'mastra-agent-store',\n },\n ),\n);\n","import { createContext, useState, ReactNode, useEffect, useMemo } from 'react';\nimport { ModelSettings } from '../../../../types';\nimport { useAgentStore } from '@/store/agent-store';\nimport { GetAgentResponse } from '@mastra/client-js';\n\ntype AgentContextType = {\n modelSettings: ModelSettings;\n chatWithGenerate: boolean;\n setModelSettings: (modelSettings: ModelSettings) => void;\n resetModelSettings: () => void;\n setChatWithGenerate: (chatWithGenerate: boolean) => void;\n};\n\nconst defaultModelSettings: ModelSettings = {\n maxRetries: 2,\n maxSteps: 5,\n temperature: 0.5,\n topP: 1,\n};\n\nexport const AgentContext = createContext<AgentContextType>({} as AgentContextType);\n\nexport function AgentProvider({\n agentId,\n defaultGenerateOptions,\n defaultStreamOptions,\n children,\n}: {\n agentId: string;\n defaultGenerateOptions?: GetAgentResponse['defaultGenerateOptions'];\n defaultStreamOptions?: GetAgentResponse['defaultStreamOptions'];\n children: ReactNode;\n}) {\n const {\n modelSettings: modelSettingsStore,\n setModelSettings: setModelSettingsStore,\n chatWithGenerate: chatWithGenerateStore,\n setChatWithGenerate: setChatWithGenerateStore,\n } = useAgentStore();\n\n const chatWithGenerate = chatWithGenerateStore[agentId] || false;\n const setChatWithGenerate = (chatWithGenerate: boolean) => {\n setChatWithGenerateStore({ [agentId]: chatWithGenerate });\n };\n\n const modelSettings = useMemo(() => {\n if (modelSettingsStore[agentId]) return modelSettingsStore[agentId];\n if (chatWithGenerate) {\n return {\n maxRetries: defaultGenerateOptions?.maxRetries ?? defaultModelSettings.maxRetries,\n maxSteps: defaultGenerateOptions?.maxSteps ?? defaultModelSettings.maxSteps,\n temperature: defaultGenerateOptions?.temperature ?? defaultModelSettings.temperature,\n topP: defaultGenerateOptions?.topP ?? defaultModelSettings.topP,\n ...defaultGenerateOptions,\n };\n } else {\n return {\n maxRetries: defaultStreamOptions?.maxRetries ?? defaultModelSettings.maxRetries,\n maxSteps: defaultStreamOptions?.maxSteps ?? defaultModelSettings.maxSteps,\n temperature: defaultStreamOptions?.temperature ?? defaultModelSettings.temperature,\n topP: defaultStreamOptions?.topP ?? defaultModelSettings.topP,\n ...defaultStreamOptions,\n };\n }\n }, [agentId, defaultGenerateOptions, defaultStreamOptions, chatWithGenerate, modelSettingsStore]);\n\n const setModelSettings = (modelSettings: ModelSettings) => {\n setModelSettingsStore({ [agentId]: modelSettings });\n };\n\n const resetModelSettings = () => {\n setModelSettingsStore({ [agentId]: null });\n };\n\n return (\n <AgentContext.Provider\n value={{\n modelSettings,\n setModelSettings,\n resetModelSettings,\n chatWithGenerate,\n setChatWithGenerate,\n }}\n >\n {children}\n </AgentContext.Provider>\n );\n}\n","import { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\n\ninterface PlaygroundStore {\n runtimeContext: Record<string, any>;\n setRuntimeContext: (runtimeContext: Record<string, any>) => void;\n}\n\nexport const usePlaygroundStore = create<PlaygroundStore>()(\n persist(\n set => ({\n runtimeContext: {},\n setRuntimeContext: runtimeContext => set({ runtimeContext }),\n }),\n {\n name: 'mastra-playground-store',\n },\n ),\n);\n","import { Thread } from '@/components/assistant-ui/thread';\n\nimport { MastraRuntimeProvider } from '@/services/mastra-runtime-provider';\nimport { ChatProps } from '@/types';\nimport { useContext } from 'react';\nimport { AgentContext } from './context/agent-context';\nimport { usePlaygroundStore } from '@/store/playground-store';\n\nexport const AgentChat = ({\n agentId,\n agentName,\n threadId,\n initialMessages,\n memory,\n refreshThreadList,\n showFileSupport,\n}: ChatProps) => {\n const { modelSettings, chatWithGenerate } = useContext(AgentContext);\n const { runtimeContext } = usePlaygroundStore();\n return (\n <MastraRuntimeProvider\n agentId={agentId}\n agentName={agentName}\n threadId={threadId}\n initialMessages={initialMessages}\n memory={memory}\n refreshThreadList={refreshThreadList}\n modelSettings={modelSettings}\n chatWithGenerate={chatWithGenerate}\n runtimeContext={runtimeContext}\n >\n <Thread agentName={agentName ?? ''} hasMemory={memory} showFileSupport={showFileSupport} />\n </MastraRuntimeProvider>\n );\n};\n","import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',\n secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive: 'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',\n outline: 'text-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n","import { Copy } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nimport { Button } from './button';\n\ninterface CopyableCell {\n content: string;\n label: string;\n multiline?: boolean;\n}\n\nexport function CopyableContent({ content, label, multiline = false }: CopyableCell) {\n const handleCopy = () => {\n navigator.clipboard.writeText(content);\n };\n\n return (\n <div className=\"group relative flex items-start gap-2\">\n <span className={cn('text-sm text-mastra-el-4', multiline ? 'whitespace-pre-wrap' : 'truncate')}>{content}</span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"opacity-0 group-hover:opacity-100 transition-opacity shrink-0 -mt-1\"\n onClick={e => {\n e.stopPropagation();\n handleCopy();\n }}\n aria-label={`Copy ${label}`}\n >\n <Copy className=\"h-3 w-3\" />\n </Button>\n </div>\n );\n}\n","import { format, formatDistanceToNow } from 'date-fns';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\n\nexport function FormattedDate({ date }: { date: string }) {\n const formattedDate = {\n relativeTime: formatDistanceToNow(new Date(date), { addSuffix: true }),\n fullDate: format(new Date(date), 'PPpp'),\n };\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger className=\"text-left text-sm text-mastra-el-4\">{formattedDate.relativeTime}</TooltipTrigger>\n <TooltipContent className=\"bg-mastra-bg-1 text-mastra-el-1\">\n <p className=\"text-sm\">{formattedDate.fullDate}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n","import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport clsx from 'clsx';\n\nconst inputVariants = cva(\n 'flex w-full text-icon6 rounded-lg border bg-transparent shadow-sm focus-visible:ring-ring transition-colors focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-sm border-border1 placeholder:text-icon3',\n filled: 'border-sm bg-inputFill border-border1 placeholder:text-icon3',\n unstyled:\n 'border-0 bg-transparent placeholder:text-icon3 focus-visible:ring-transparent focus-visible:outline-none',\n },\n customSize: {\n default: 'px-[13px] text-[calc(13_/_16_*_1rem)] h-8',\n sm: 'h-[30px] px-[13px] text-xs',\n lg: 'h-10 px-[17px] text-[calc(13_/_16_*_1rem)]',\n },\n },\n defaultVariants: {\n variant: 'default',\n customSize: 'default',\n },\n },\n);\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement>, VariantProps<typeof inputVariants> {\n testId?: string;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, customSize, testId, variant, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={clsx(className, inputVariants({ variant, customSize, className }))}\n data-testid={testId}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = 'Input';\n\nexport { Input, inputVariants };\n","import { Badge } from './badge';\n\nexport function ScoreIndicator({ score }: { score: number }) {\n return <Badge variant=\"secondary\">{score.toFixed(2)}</Badge>;\n}\n","import * as React from 'react';\n\nimport { motion } from 'motion/react';\n\nimport { cn } from '../../lib/utils';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <table ref={ref} className={cn('w-full caption-bottom text-sm border-spacing-0', className)} {...props} />\n ),\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => <thead ref={ref} className={cn('[&_tr]:border-b-[0.5px]', className)} {...props} />,\n);\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n ),\n);\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)} {...props} />\n ),\n);\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b-[0.5px] border-mastra-border-1 transition-colors hover:bg-muted/50 data-[state=selected]:bg-mastra-bg-4/70',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n ),\n);\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <td ref={ref} className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)} {...props} />\n ),\n);\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\n ({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n ),\n);\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n","'use client';\n\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => <TabsPrimitive.List ref={ref} className={cn(className)} {...props} />);\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => <TabsPrimitive.Trigger ref={ref} className={cn(className)} {...props} />);\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import { ChevronRight, RefreshCcwIcon, Search, SortAsc, SortDesc } from 'lucide-react';\nimport React, { useState } from 'react';\n\nimport { Badge } from '@/components/ui/badge';\nimport { Button } from '@/components/ui/button';\nimport { CopyableContent } from '@/components/ui/copyable-content';\nimport { FormattedDate } from '@/components/ui/formatted-date';\nimport { Input } from '@/components/ui/input';\nimport { ScoreIndicator } from '@/components/ui/score-indicator';\nimport { Table, TableHeader, TableHead, TableBody, TableCell, TableRow } from '@/components/ui/table';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';\n\nimport { cn } from '@/lib/utils';\n\nimport { AnimatePresence } from 'motion/react';\nimport { Evals, SortConfig, GroupedEvals } from '@/domains/evals/types';\n\nconst scrollableContentClass = cn(\n 'relative overflow-y-auto overflow-x-hidden invisible hover:visible focus:visible',\n '[&::-webkit-scrollbar]:w-1',\n '[&::-webkit-scrollbar-track]:bg-transparent',\n '[&::-webkit-scrollbar-thumb]:rounded-full',\n '[&::-webkit-scrollbar-thumb]:bg-mastra-border/20',\n '[&>*]:visible',\n);\n\nconst tabIndicatorClass = cn(\n 'px-4 py-2 text-sm transition-all border-b-2 border-transparent',\n 'data-[state=active]:border-white data-[state=active]:text-white font-medium',\n 'data-[state=inactive]:text-mastra-el-4 hover:data-[state=inactive]:text-mastra-el-2',\n 'focus-visible:outline-none',\n);\n\nconst tabContentClass = cn('data-[state=inactive]:mt-0 min-h-0 h-full grid grid-rows-[1fr]');\n\nexport interface AgentEvalsProps {\n liveEvals: Array<Evals>;\n ciEvals: Array<Evals>;\n\n onRefetchLiveEvals: () => void;\n onRefetchCiEvals: () => void;\n}\n\nexport function AgentEvals({ liveEvals, ciEvals, onRefetchLiveEvals, onRefetchCiEvals }: AgentEvalsProps) {\n const [activeTab, setActiveTab] = useState<'live' | 'ci'>('live');\n\n function handleRefresh() {\n if (activeTab === 'live') return onRefetchLiveEvals();\n\n return onRefetchCiEvals();\n }\n\n return (\n <Tabs\n value={activeTab}\n onValueChange={value => setActiveTab(value as 'live' | 'ci')}\n className=\"grid grid-rows-[auto_1fr] h-full min-h-0 pb-2\"\n >\n <div className=\"border-b border-mastra-border/10\">\n <TabsList className=\"bg-transparent border-0 h-auto mx-4\">\n <TabsTrigger value=\"live\" className={tabIndicatorClass}>\n Live\n </TabsTrigger>\n <TabsTrigger value=\"ci\" className={tabIndicatorClass}>\n CI\n </TabsTrigger>\n </TabsList>\n </div>\n <TabsContent value=\"live\" className={tabContentClass}>\n <EvalTable evals={liveEvals} isCIMode={false} onRefresh={handleRefresh} />\n </TabsContent>\n <TabsContent value=\"ci\" className={tabContentClass}>\n <EvalTable evals={ciEvals} isCIMode={true} onRefresh={handleRefresh} />\n </TabsContent>\n </Tabs>\n );\n}\n\ninterface EvalTableProps {\n evals: Evals[];\n isCIMode?: boolean;\n onRefresh: () => void;\n}\n\nfunction EvalTable({ evals, isCIMode = false, onRefresh }: EvalTableProps) {\n const [expandedMetrics, setExpandedMetrics] = useState<Set<string>>(new Set());\n const [searchTerm, setSearchTerm] = useState('');\n const [sortConfig, setSortConfig] = useState<SortConfig>({ field: 'metricName', direction: 'asc' });\n\n return (\n <div className=\"min-h-0 grid grid-rows-[auto_1fr]\">\n <div className=\"flex items-center gap-4 p-4 rounded-lg\">\n <div className=\"relative flex-1\">\n <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-mastra-el-3\" />\n <Input\n id=\"search-input\"\n placeholder=\"Search metrics, inputs, or outputs...\"\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n className=\"pl-10\"\n />\n </div>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {evals.length} Total Evaluations\n </Badge>\n <Button variant=\"ghost\" size=\"icon\" onClick={onRefresh} className=\"h-9 w-9\">\n <RefreshCcwIcon className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div className=\"overflow-auto\">\n <Table className=\"w-full\">\n <TableHeader className=\"bg-mastra-bg-2 h-[var(--table-header-height)] sticky top-0 z-10\">\n <TableRow className=\"border-gray-6 border-b-[0.1px] text-[0.8125rem]\">\n <TableHead className=\"w-12 h-12\"></TableHead>\n <TableHead\n className=\"min-w-[200px] max-w-[30%] text-mastra-el-3 cursor-pointer\"\n onClick={() => toggleSort('metricName')}\n >\n <div className=\"flex items-center\">Metric {getSortIcon('metricName')}</div>\n </TableHead>\n <TableHead className=\"flex-1 text-mastra-el-3\" />\n <TableHead className=\"w-48 text-mastra-el-3 cursor-pointer\" onClick={() => toggleSort('averageScore')}>\n <div className=\"flex items-center\">Average Score {getSortIcon('averageScore')}</div>\n </TableHead>\n <TableHead className=\"w-48 text-mastra-el-3\">Evaluations</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody className=\"border-b border-gray-6 relative\">\n <AnimatePresence mode=\"wait\" presenceAffectsLayout={false}>\n {groupEvals(evals).length === 0 ? (\n <TableRow>\n <TableCell className=\"h-12 w-16\"></TableCell>\n <TableCell colSpan={4} className=\"h-32 px-4 text-center text-mastra-el-3\">\n <div className=\"flex flex-col items-center gap-2\">\n <Search className=\"size-5\" />\n <p>No evaluations found</p>\n {searchTerm && <p className=\"text-sm\">Try adjusting your search terms</p>}\n </div>\n </TableCell>\n </TableRow>\n ) : (\n groupEvals(evals).map(group => (\n <React.Fragment key={group.metricName}>\n <TableRow\n className=\"border-b-gray-6 border-b-[0.1px] text-[0.8125rem] cursor-pointer hover:bg-mastra-bg-3\"\n onClick={() => toggleMetric(group.metricName)}\n >\n <TableCell className=\"w-12\">\n <div className=\"h-8 w-full flex items-center justify-center\">\n <div\n className={cn(\n 'transform transition-transform duration-200',\n expandedMetrics.has(group.metricName) ? 'rotate-90' : '',\n )}\n >\n <ChevronRight className=\"h-4 w-4 text-mastra-el-5\" />\n </div>\n </div>\n </TableCell>\n <TableCell className=\"min-w-[200px] max-w-[30%] font-medium text-mastra-el-5\">\n {group.metricName}\n </TableCell>\n <TableCell className=\"flex-1 text-mastra-el-5\" />\n <TableCell className=\"w-48 text-mastra-el-5\">\n <ScoreIndicator score={group.averageScore} />\n </TableCell>\n <TableCell className=\"w-48 text-mastra-el-5\">\n <Badge variant=\"secondary\">{group.evals.length}</Badge>\n </TableCell>\n </TableRow>\n\n {expandedMetrics.has(group.metricName) && (\n <TableRow>\n <TableCell\n colSpan={5 + (getHasReasons(group.evals) ? 1 : 0) + (isCIMode ? 1 : 0)}\n className=\"p-0\"\n >\n <div className=\"bg-mastra-bg-3 rounded-lg m-2\">\n <div className=\"w-full\">\n <Table className=\"w-full\">\n <TableHeader>\n <TableRow className=\"text-[0.7rem] text-mastra-el-3 hover:bg-transparent\">\n <TableHead className=\"pl-12 w-[120px]\">Timestamp</TableHead>\n <TableHead className=\"w-[300px]\">Instructions</TableHead>\n <TableHead className=\"w-[300px]\">Input</TableHead>\n <TableHead className=\"w-[300px]\">Output</TableHead>\n <TableHead className=\"w-[80px]\">Score</TableHead>\n {getHasReasons(group.evals) && <TableHead className=\"w-[250px]\">Reason</TableHead>}\n {isCIMode && <TableHead className=\"w-[120px]\">Test Name</TableHead>}\n </TableRow>\n </TableHeader>\n <TableBody>\n {group.evals.map((evaluation, index) => (\n <TableRow\n key={`${group.metricName}-${index}`}\n className=\"text-[0.8125rem] hover:bg-mastra-bg-2/50\"\n >\n <TableCell className=\"pl-12 text-mastra-el-4 align-top py-4\">\n <FormattedDate date={evaluation.createdAt} />\n </TableCell>\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <div className={cn('max-w-[300px] max-h-[200px]', scrollableContentClass)}>\n <CopyableContent\n content={evaluation.instructions}\n label=\"instructions\"\n multiline\n />\n </div>\n </TableCell>\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <div className={cn('max-w-[300px] max-h-[200px]', scrollableContentClass)}>\n <CopyableContent content={evaluation.input} label=\"input\" multiline />\n </div>\n </TableCell>\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <div className={cn('max-w-[300px] max-h-[200px]', scrollableContentClass)}>\n <CopyableContent content={evaluation.output} label=\"output\" multiline />\n </div>\n </TableCell>\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <ScoreIndicator score={evaluation.result.score} />\n </TableCell>\n {getHasReasons(group.evals) && (\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <div className={cn('max-w-[300px] max-h-[200px]', scrollableContentClass)}>\n <CopyableContent\n content={evaluation.result.info?.reason || ''}\n label=\"reason\"\n multiline\n />\n </div>\n </TableCell>\n )}\n {isCIMode && (\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n {evaluation.testInfo?.testName && (\n <Badge variant=\"secondary\" className=\"text-xs\">\n {evaluation.testInfo.testName}\n </Badge>\n )}\n </TableCell>\n )}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </div>\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n ))\n )}\n </AnimatePresence>\n </TableBody>\n </Table>\n </div>\n </div>\n );\n\n function getHasReasons(groupEvals: Evals[]) {\n return groupEvals.some(eval_ => eval_.result.info?.reason);\n }\n\n function toggleMetric(metricName: string) {\n const newExpanded = new Set(expandedMetrics);\n if (newExpanded.has(metricName)) {\n newExpanded.delete(metricName);\n } else {\n newExpanded.add(metricName);\n }\n setExpandedMetrics(newExpanded);\n }\n\n function toggleSort(field: SortConfig['field']) {\n setSortConfig(prev => ({\n field,\n direction: prev.field === field && prev.direction === 'asc' ? 'desc' : 'asc',\n }));\n }\n\n function getSortIcon(field: SortConfig['field']) {\n if (sortConfig.field !== field) return null;\n return sortConfig.direction === 'asc' ? (\n <SortAsc className=\"h-4 w-4 ml-1\" />\n ) : (\n <SortDesc className=\"h-4 w-4 ml-1\" />\n );\n }\n\n function groupEvals(evaluations: Evals[]): GroupedEvals[] {\n let groups = evaluations.reduce((groups: GroupedEvals[], evaluation) => {\n const existingGroup = groups.find(g => g.metricName === evaluation.metricName);\n if (existingGroup) {\n existingGroup.evals.push(evaluation);\n existingGroup.averageScore =\n existingGroup.evals.reduce((sum, e) => sum + e.result.score, 0) / existingGroup.evals.length;\n } else {\n groups.push({\n metricName: evaluation.metricName,\n averageScore: evaluation.result.score,\n evals: [evaluation],\n });\n }\n return groups;\n }, []);\n\n // Apply search filter\n if (searchTerm) {\n groups = groups.filter(\n group =>\n group.metricName.toLowerCase().includes(searchTerm.toLowerCase()) ||\n group.evals.some(\n metric =>\n metric.input?.toLowerCase().includes(searchTerm.toLowerCase()) ||\n metric.output?.toLowerCase().includes(searchTerm.toLowerCase()) ||\n metric.instructions?.toLowerCase().includes(searchTerm.toLowerCase()),\n ),\n );\n }\n\n // Apply sorting\n groups.sort((a, b) => {\n const direction = sortConfig.direction === 'asc' ? 1 : -1;\n switch (sortConfig.field) {\n case 'metricName':\n return direction * a.metricName.localeCompare(b.metricName);\n case 'averageScore':\n return direction * (a.averageScore - b.averageScore);\n default:\n return 0;\n }\n });\n\n return groups;\n }\n}\n","import { createContext, useState } from 'react';\n\nimport type { Span, RefinedTrace } from '../types';\n\nexport type TraceContextType = {\n isOpen: boolean;\n setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n trace: Span[] | null;\n setTrace: React.Dispatch<React.SetStateAction<Span[] | null>>;\n traces: RefinedTrace[];\n currentTraceIndex: number;\n setCurrentTraceIndex: React.Dispatch<React.SetStateAction<number>>;\n nextTrace: () => void;\n prevTrace: () => void;\n span: Span | null;\n setSpan: React.Dispatch<React.SetStateAction<Span | null>>;\n clearData: () => void;\n};\n\nexport const TraceContext = createContext<TraceContextType>({} as TraceContextType);\n\nexport function TraceProvider({\n children,\n initialTraces: traces = [],\n}: {\n children: React.ReactNode;\n initialTraces?: RefinedTrace[];\n}) {\n const [open, setOpen] = useState(false);\n const [trace, setTrace] = useState<Span[] | null>(null);\n const [currentTraceIndex, setCurrentTraceIndex] = useState(0);\n const [span, setSpan] = useState<Span | null>(null);\n\n const nextTrace = () => {\n if (currentTraceIndex < traces.length - 1) {\n const nextIndex = currentTraceIndex + 1;\n setCurrentTraceIndex(nextIndex);\n const nextTrace = traces[nextIndex].trace;\n setTrace(nextTrace);\n const parentSpan = nextTrace.find(span => span.parentSpanId === null) || nextTrace[0];\n setSpan(parentSpan);\n }\n };\n\n const prevTrace = () => {\n if (currentTraceIndex > 0) {\n const prevIndex = currentTraceIndex - 1;\n setCurrentTraceIndex(prevIndex);\n const prevTrace = traces[prevIndex].trace;\n setTrace(prevTrace);\n const parentSpan = prevTrace.find(span => span.parentSpanId === null) || prevTrace[0];\n setSpan(parentSpan);\n }\n };\n\n const clearData = () => {\n setOpen(false);\n setTrace(null);\n setSpan(null);\n };\n\n return (\n <TraceContext.Provider\n value={{\n isOpen: open,\n setIsOpen: setOpen,\n trace,\n setTrace,\n traces,\n currentTraceIndex,\n setCurrentTraceIndex,\n nextTrace,\n prevTrace,\n span,\n setSpan,\n clearData,\n }}\n >\n {children}\n </TraceContext.Provider>\n );\n}\n","import clsx from 'clsx';\nimport React from 'react';\n\nexport interface TableProps {\n className?: string;\n children: React.ReactNode;\n size?: 'default' | 'small';\n}\n\nconst rowSize = {\n default: '[&>tbody>tr]:h-table-row',\n small: '[&>tbody>tr]:h-table-row-small',\n};\n\nexport const Table = ({ className, children, size = 'default' }: TableProps) => {\n return <table className={clsx('w-full', rowSize[size], className)}>{children}</table>;\n};\n\nexport interface TheadProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Thead = ({ className, children }: TheadProps) => {\n return (\n <thead>\n <tr className={clsx('h-table-header border-b-sm border-border1', className)}>{children}</tr>\n </thead>\n );\n};\n\nexport interface ThProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Th = ({ className, children, ...props }: ThProps) => {\n return (\n <th\n className={clsx(\n 'text-icon3 text-ui-sm h-full text-left font-normal uppercase first:pl-5 last:pr-5 whitespace-nowrap',\n className,\n )}\n {...props}\n >\n {children}\n </th>\n );\n};\n\nexport interface TbodyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Tbody = ({ className, children }: TbodyProps) => {\n return <tbody className={clsx('', className)}>{children}</tbody>;\n};\n\nexport interface RowProps {\n className?: string;\n children: React.ReactNode;\n selected?: boolean;\n onClick?: () => void;\n}\n\nexport const Row = ({ className, children, selected = false, onClick }: RowProps) => {\n return (\n <tr\n className={clsx(\n 'border-b-sm border-border1 hover:bg-surface3',\n selected && 'bg-surface4',\n onClick && 'cursor-pointer',\n className,\n )}\n onClick={onClick}\n >\n {children}\n </tr>\n );\n};\n","export const formatDateCell = (date: Date) => {\n // Format the month as a short text representation\n const month = new Intl.DateTimeFormat('en-US', { month: 'short' }).format(date).toUpperCase();\n const day = date.getDate();\n\n const formattedDay = `${month} ${day}`;\n\n const time = new Intl.DateTimeFormat('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false, // Use 24-hour format\n }).format(date);\n\n return { day: formattedDay, time };\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { Txt } from '../Txt';\n\nimport { formatDateCell } from './utils';\n\nexport interface CellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Cell = ({ className, children, ...props }: CellProps) => {\n return (\n <td className={clsx('text-icon5 first:pl-5 last:pr-5', className)} {...props}>\n <div className={clsx('flex h-full w-full shrink-0 items-center')}>{children}</div>\n </td>\n );\n};\n\nexport const TxtCell = ({ className, children }: CellProps) => {\n return (\n <Cell className={className}>\n <Txt as=\"span\" variant=\"ui-md\" className=\"w-full truncate\">\n {children}\n </Txt>\n </Cell>\n );\n};\n\nexport const UnitCell = ({ className, children, unit }: CellProps & { unit: string }) => {\n return (\n <Cell className={className}>\n <div className=\"flex min-w-0 items-center\">\n <Txt as=\"span\" variant=\"ui-md\" className=\"shrink-0\">\n {children}\n </Txt>\n <Txt as=\"span\" variant=\"ui-sm\" className=\"text-icon3 w-full truncate\">\n {unit}\n </Txt>\n </div>\n </Cell>\n );\n};\n\nexport interface DateTimeCellProps extends Omit<CellProps, 'children'> {\n dateTime: Date;\n}\n\nexport const DateTimeCell = ({ dateTime, ...props }: DateTimeCellProps) => {\n const { day, time } = formatDateCell(dateTime);\n\n return (\n <Cell {...props}>\n <div className=\"shrink-0\">\n <Txt as=\"span\" variant=\"ui-sm\" className=\"text-icon3\">\n {day}\n </Txt>{' '}\n <Txt as=\"span\" variant=\"ui-md\">\n {time}\n </Txt>\n </div>\n </Cell>\n );\n};\n\nexport interface EntryCellProps extends Omit<CellProps, 'children'> {\n name: React.ReactNode;\n description?: React.ReactNode;\n icon: React.ReactNode;\n meta?: React.ReactNode;\n}\n\nexport const EntryCell = ({ name, description, icon, meta, ...props }: EntryCellProps) => {\n return (\n <Cell {...props}>\n <div className=\"flex items-center gap-[14px]\">\n <Icon size=\"lg\" className=\"text-icon5\">\n {icon}\n </Icon>\n\n <div className=\"flex flex-col gap-0\">\n <Txt as=\"span\" variant=\"ui-md\" className=\"text-icon6 font-medium !leading-tight\">\n {name}\n </Txt>\n {description && (\n <Txt as=\"span\" variant=\"ui-xs\" className=\"text-icon3 w-full max-w-[300px] truncate !leading-tight\">\n {description}\n </Txt>\n )}\n </div>\n {meta}\n </div>\n </Cell>\n );\n};\n","import { Span } from '../types';\nimport { useContext } from 'react';\nimport { TraceContext } from '../context/trace-context';\n\nexport const useOpenTrace = () => {\n const {\n setTrace,\n isOpen: open,\n setIsOpen: setOpen,\n trace: currentTrace,\n setSpan,\n setCurrentTraceIndex,\n } = useContext(TraceContext);\n\n const openTrace = (trace: Span[], traceIndex: number) => {\n setTrace(trace);\n const parentSpan = trace.find(span => span.parentSpanId === null) || trace[0];\n setSpan(parentSpan);\n setCurrentTraceIndex(traceIndex);\n if (open && currentTrace?.[0]?.id !== trace[0].id) return;\n setOpen(prev => !prev);\n };\n\n return { openTrace };\n};\n","export const toSigFigs = (num: number, sigFigs: number) => {\n // toPrecision returns significant digits formatted with potentially exponential notation\n // Number() converts the exponential notation to a regular number\n return Number(num.toPrecision(sigFigs));\n};\n","import { Skeleton } from '@/components/ui/skeleton';\nimport { Table, Tbody, Th, Row, Cell, DateTimeCell, UnitCell, TxtCell } from '@/ds/components/Table';\nimport { Thead } from '@/ds/components/Table';\nimport type { RefinedTrace } from '@/domains/traces/types';\nimport { Badge } from '@/ds/components/Badge';\nimport { TraceIcon } from '@/ds/icons/TraceIcon';\nimport { useOpenTrace } from './hooks/use-open-trace';\nimport { Txt } from '@/ds/components/Txt';\nimport { useContext } from 'react';\nimport { TraceContext } from './context/trace-context';\nimport { Check, X } from 'lucide-react';\nimport { toSigFigs } from '@/lib/number';\n\nconst TracesTableEmpty = ({ colsCount }: { colsCount: number }) => {\n return (\n <Tbody>\n <Row>\n <Cell colSpan={colsCount} className=\"text-center py-4\">\n <Txt>No traces found</Txt>\n </Cell>\n </Row>\n </Tbody>\n );\n};\n\nconst TracesTableError = ({ error, colsCount }: { error: { message: string }; colsCount: number }) => {\n return (\n <Tbody>\n <Row>\n <Cell colSpan={colsCount} className=\"text-center py-4\">\n <Txt>{error.message}</Txt>\n </Cell>\n </Row>\n </Tbody>\n );\n};\n\nexport interface TracesTableProps {\n traces: RefinedTrace[];\n error: { message: string } | null;\n}\n\nconst TraceRow = ({ trace, index, isActive }: { trace: RefinedTrace; index: number; isActive: boolean }) => {\n const { openTrace } = useOpenTrace();\n const hasFailure = trace.trace.some(span => span.status.code !== 0);\n\n return (\n <Row className={isActive ? 'bg-surface4' : ''} onClick={() => openTrace(trace.trace, index)}>\n <DateTimeCell dateTime={new Date(trace.started / 1000)} />\n <TxtCell title={trace.traceId}>{trace.traceId.substring(0, 7)}...</TxtCell>\n <UnitCell unit=\"ms\">{toSigFigs(trace.duration / 1000, 3)}</UnitCell>\n <Cell>\n <button onClick={() => openTrace(trace.trace, index)}>\n <Badge icon={<TraceIcon />}>{trace.trace.length}</Badge>\n </button>\n </Cell>\n <Cell>\n {hasFailure ? (\n <Badge variant=\"error\" icon={<X />}>\n Failed\n </Badge>\n ) : (\n <Badge icon={<Check />} variant=\"success\">\n Success\n </Badge>\n )}\n </Cell>\n </Row>\n );\n};\n\nexport const TracesTable = ({ traces, error }: TracesTableProps) => {\n const hasNoTraces = !traces || traces.length === 0;\n const { currentTraceIndex } = useContext(TraceContext);\n const colsCount = 4;\n\n return (\n <Table size=\"small\">\n <Thead>\n <Th width={120}>Time</Th>\n <Th width=\"auto\">Trace Id</Th>\n <Th width={120}>Duration</Th>\n <Th width={120}>Spans</Th>\n <Th width={120}>Status</Th>\n </Thead>\n {error ? (\n <TracesTableError error={error} colsCount={colsCount} />\n ) : hasNoTraces ? (\n <TracesTableEmpty colsCount={colsCount} />\n ) : (\n <>\n <Tbody>\n {traces.map((trace, index) => (\n <TraceRow key={trace.traceId} trace={trace} index={index} isActive={index === currentTraceIndex} />\n ))}\n </Tbody>\n </>\n )}\n </Table>\n );\n};\n","import { MouseEvent as ReactMouseEvent, useEffect, useRef, useState } from 'react';\n\nexport const useResizeColumn = ({\n defaultWidth,\n minimumWidth,\n maximumWidth,\n setCurrentWidth,\n}: {\n defaultWidth: number;\n minimumWidth: number;\n maximumWidth: number;\n setCurrentWidth?: (width: number) => void;\n}) => {\n const [isDragging, setIsDragging] = useState(false);\n const [sidebarWidth, setSidebarWidth] = useState<number>(defaultWidth);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const dragStartXRef = useRef(0);\n const initialWidthRef = useRef(0);\n\n const handleMouseDown = (e: ReactMouseEvent) => {\n e.preventDefault(); // Prevent text selection\n setIsDragging(true);\n dragStartXRef.current = e.clientX;\n initialWidthRef.current = sidebarWidth;\n };\n\n useEffect(() => {\n setSidebarWidth(defaultWidth);\n setCurrentWidth?.(defaultWidth);\n }, [defaultWidth]);\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging || !containerRef.current) return;\n\n const containerWidth = containerRef.current.offsetWidth;\n const deltaX = dragStartXRef.current - e.clientX;\n const deltaPercentage = (deltaX / containerWidth) * 100;\n\n // Calculate new width percentage\n const newWidth = Math.min(Math.max(initialWidthRef.current + deltaPercentage, minimumWidth), maximumWidth);\n setSidebarWidth(newWidth);\n setCurrentWidth?.(newWidth);\n };\n\n const handleMouseUp = () => {\n setIsDragging(false);\n };\n\n if (isDragging) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isDragging]);\n\n return { sidebarWidth, isDragging, handleMouseDown, containerRef };\n};\n","import { useResizeColumn } from '@/hooks/use-resize-column';\nimport { cn } from '@/lib/utils';\nimport { ReactNode } from 'react';\n\nexport const MastraResizablePanel = ({\n children,\n defaultWidth,\n minimumWidth,\n maximumWidth,\n className,\n disabled = false,\n setCurrentWidth,\n dividerPosition = 'left',\n}: {\n children: ReactNode;\n defaultWidth: number;\n minimumWidth: number;\n maximumWidth: number;\n className?: string;\n disabled?: boolean;\n setCurrentWidth?: (width: number) => void;\n dividerPosition?: 'left' | 'right';\n}) => {\n const { sidebarWidth, isDragging, handleMouseDown, containerRef } = useResizeColumn({\n defaultWidth: disabled ? 100 : defaultWidth,\n minimumWidth,\n maximumWidth,\n setCurrentWidth,\n });\n return (\n <div className={cn('w-full h-full relative', className)} ref={containerRef} style={{ width: `${sidebarWidth}%` }}>\n {!disabled && dividerPosition === 'left' ? (\n <div\n 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\n ${isDragging ? 'bg-border2 w-1.5 cursor- col-resize' : ''}`}\n onMouseDown={handleMouseDown}\n />\n ) : null}\n {children}\n {!disabled && dividerPosition === 'right' ? (\n <div\n 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\n ${isDragging ? 'bg-border2 w-1.5 cursor- col-resize' : ''}`}\n onMouseDown={handleMouseDown}\n />\n ) : null}\n </div>\n );\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n as?: React.ElementType;\n className?: string;\n href?: string;\n to?: string;\n prefetch?: boolean | null;\n children: React.ReactNode;\n size?: 'md' | 'lg';\n variant?: 'default' | 'light';\n}\n\nconst sizeClasses = {\n md: 'h-button-md gap-md',\n lg: 'h-button-lg gap-lg',\n};\n\nconst variantClasses = {\n default: 'bg-surface2 hover:bg-surface4 text-icon3 hover:text-icon6',\n light: 'bg-surface3 hover:bg-surface5 text-icon6',\n};\n\nexport const Button = ({ className, as, size = 'md', variant = 'default', ...props }: ButtonProps) => {\n const Component = as || 'button';\n\n return (\n <Component\n className={clsx(\n 'bg-surface2 border-sm border-border1 px-lg text-ui-md inline-flex items-center justify-center rounded-md border',\n variantClasses[variant],\n sizeClasses[size],\n className,\n )}\n {...props}\n />\n );\n};\n","import React from 'react';\n\nexport interface TraceTreeProps {\n children: React.ReactNode;\n}\n\nexport const TraceTree = ({ children }: TraceTreeProps) => {\n return <ol>{children}</ol>;\n};\n","import clsx from 'clsx';\n\nimport { Txt } from '../Txt';\nimport { toSigFigs } from '@/lib/number';\n\nexport interface TimeProps {\n durationMs: number;\n tokenCount?: number;\n variant?: 'agent';\n progressPercent: number;\n offsetPercent: number;\n}\n\nconst variantClasses = {\n agent: 'bg-accent1',\n};\n\nexport const Time = ({ durationMs, tokenCount, variant, progressPercent, offsetPercent }: TimeProps) => {\n const variantClass = variant ? variantClasses[variant] : 'bg-accent3';\n const percent = Math.min(100, progressPercent);\n\n return (\n <div className=\"w-[80px] xl:w-[166px] shrink-0\">\n <div className=\"bg-surface4 relative h-[6px] w-full rounded-full p-px overflow-hidden\">\n <div\n className={clsx('absolute h-1 rounded-full', variantClass)}\n style={{ width: `${percent}%`, left: `${offsetPercent}%` }}\n />\n </div>\n <div className=\"flex items-center gap-4 pt-0.5\">\n <Txt variant=\"ui-sm\" className=\"text-icon2 font-medium\">\n {toSigFigs(durationMs, 3)}ms\n </Txt>\n {tokenCount && (\n <Txt variant=\"ui-sm\" className=\"text-icon2 font-medium\">\n {tokenCount}t\n </Txt>\n )}\n </div>\n </div>\n );\n};\n","import clsx from 'clsx';\nimport { useState } from 'react';\nimport React from 'react';\n\nimport { AgentIcon } from '../../icons/AgentIcon';\nimport { ChevronIcon } from '../../icons/ChevronIcon';\nimport { DbIcon } from '../../icons/DbIcon';\nimport { Icon } from '../../icons/Icon';\nimport { MemoryIcon } from '../../icons/MemoryIcon';\nimport { ScoreIcon } from '../../icons/ScoreIcon';\nimport { ToolsIcon } from '../../icons/ToolsIcon';\nimport { TraceIcon } from '../../icons/TraceIcon';\nimport { WorkflowIcon } from '../../icons/WorkflowIcon';\nimport { Txt } from '../Txt';\n\nimport { Time } from './Time';\n\nexport interface SpanProps {\n children: React.ReactNode;\n durationMs: number;\n variant: 'tool' | 'agent' | 'workflow' | 'memory' | 'rag' | 'storage' | 'eval' | 'other';\n tokenCount?: number;\n spans?: React.ReactNode;\n isRoot?: boolean;\n onClick?: () => void;\n isActive?: boolean;\n offsetMs: number;\n totalDurationMs: number;\n}\n\nexport const spanIconMap = {\n tool: ToolsIcon,\n agent: AgentIcon,\n workflow: WorkflowIcon,\n memory: MemoryIcon,\n rag: TraceIcon,\n storage: DbIcon,\n eval: ScoreIcon,\n other: TraceIcon,\n};\n\nexport const spanVariantClasses = {\n tool: 'text-[#ECB047]',\n agent: 'text-accent1',\n workflow: 'text-accent3',\n memory: 'text-accent2',\n rag: 'text-accent2',\n storage: 'text-accent2',\n eval: 'text-accent4',\n other: 'text-icon6',\n};\n\nexport const Span = ({\n children,\n durationMs,\n variant,\n tokenCount,\n spans,\n isRoot,\n onClick,\n isActive,\n offsetMs,\n totalDurationMs,\n}: SpanProps) => {\n const [isExpanded, setIsExpanded] = useState(true);\n\n const VariantIcon = spanIconMap[variant];\n const variantClass = spanVariantClasses[variant];\n\n const progressPercent = (durationMs / totalDurationMs) * 100;\n const offsetPercent = (offsetMs / totalDurationMs) * 100;\n\n const TextEl = onClick ? 'button' : 'div';\n\n return (\n <li>\n <div className={clsx('flex justify-between items-center gap-2 rounded-md pl-2', isActive && 'bg-surface4')}>\n <div className=\"flex h-8 items-center gap-1 min-w-0\">\n {spans ? (\n <button\n type=\"button\"\n aria-label={isExpanded ? 'Collapse span' : 'Expand span'}\n aria-expanded={isExpanded}\n className=\"text-icon3 flex h-4 w-4\"\n onClick={() => setIsExpanded(!isExpanded)}\n >\n <Icon>\n <ChevronIcon className={clsx('transition-transform -rotate-90', { 'rotate-0': isExpanded })} />\n </Icon>\n </button>\n ) : (\n <div aria-hidden className=\"h-full w-4\">\n {!isRoot && <div className=\"ml-[7px] h-full w-px rounded-full\" />}\n </div>\n )}\n\n <TextEl className=\"flex items-center gap-2 min-w-0\" onClick={onClick}>\n <div className={clsx('bg-surface4 flex items-center justify-center rounded-md p-[3px]', variantClass)}>\n <Icon>\n <VariantIcon />\n </Icon>\n </div>\n <Txt variant=\"ui-md\" className=\"text-icon6 truncate\">\n {children}\n </Txt>\n </TextEl>\n </div>\n\n <Time\n durationMs={durationMs}\n tokenCount={tokenCount}\n variant={variant === 'agent' ? 'agent' : undefined}\n progressPercent={progressPercent}\n offsetPercent={offsetPercent}\n />\n </div>\n\n {isExpanded && spans && <div className=\"ml-4\">{spans}</div>}\n </li>\n );\n};\n","import React from 'react';\n\nexport interface SpansProps {\n children: React.ReactNode;\n}\n\nexport const Spans = ({ children }: SpansProps) => {\n return <ol>{children}</ol>;\n};\n","import React from 'react';\n\nimport { Span, SpanProps } from './Span';\nimport { Spans } from './Spans';\n\nexport interface TraceProps {\n name: string;\n spans: React.ReactNode;\n durationMs: number;\n tokenCount?: number;\n onClick?: () => void;\n variant: SpanProps['variant'];\n isActive?: boolean;\n totalDurationMs: number;\n}\n\nexport const Trace = ({\n name,\n spans,\n durationMs,\n tokenCount,\n onClick,\n variant,\n isActive,\n totalDurationMs,\n}: TraceProps) => {\n return (\n <Span\n isRoot\n durationMs={durationMs}\n variant={variant}\n spans={<Spans>{spans}</Spans>}\n onClick={onClick}\n isActive={isActive}\n offsetMs={0}\n totalDurationMs={totalDurationMs}\n >\n {name}\n </Span>\n );\n};\n","import { SpanProps } from '@/ds/components/TraceTree/Span';\nimport { Span } from '../types';\n\nexport const getSpanVariant = (span: Span): SpanProps['variant'] => {\n const attributes = Object.keys(span.attributes || {}).map(k => k.toLowerCase());\n const lowerCaseName = span.name.toLowerCase();\n\n const isAiSpan = lowerCaseName.startsWith('ai.');\n\n if (isAiSpan) {\n const isAiAboutTool = lowerCaseName.includes('tool');\n if (isAiAboutTool) return 'tool';\n\n return 'other';\n }\n\n const hasMemoryRelatedAttributes = attributes.some(key => key.includes('memory') || key.includes('storage'));\n if (hasMemoryRelatedAttributes) return 'memory';\n\n const hasToolRelatedAttributes = attributes.some(key => key.includes('tool'));\n if (hasToolRelatedAttributes) return 'tool';\n\n const hasAgentRelatedAttributes = attributes.some(key => key.includes('agent.'));\n if (hasAgentRelatedAttributes) return 'agent';\n\n if (lowerCaseName.includes('.insert')) {\n const evalRelatedAttribute = attributes.find(key => String(span.attributes?.[key])?.includes('mastra_evals'));\n if (evalRelatedAttribute) return 'eval';\n }\n\n return 'other';\n};\n","import type { Span, SpanNode } from '../types';\n\nfunction buildTree(\n spans: Span[],\n minStartTime: number,\n totalDurationMs: number,\n parentSpanId: string | null = null,\n): SpanNode[] {\n return spans\n .filter(span => span.parentSpanId === parentSpanId)\n .map(span => {\n return {\n ...span,\n children: buildTree(spans, minStartTime, totalDurationMs, span.id),\n offset: (span.startTime - minStartTime) / 1_000, // ns to ms\n duration: span.duration / 1000,\n totalDurationMs,\n };\n });\n}\n\nexport const createSpanTree = (spans: Span[]) => {\n if (spans.length === 0) return [];\n\n let minStartTime;\n let maxEndTime;\n let shortest;\n let longest;\n const orderedTree: Array<Span> = [];\n const listSize = spans.length;\n\n for (let i = listSize - 1; i >= 0; i--) {\n const span = spans[i];\n\n if (!minStartTime || span.startTime < minStartTime) {\n minStartTime = span.startTime;\n shortest = span;\n }\n\n if (!maxEndTime || span.endTime > maxEndTime) {\n maxEndTime = span.endTime;\n longest = span;\n }\n\n if (span.name !== '.insert' && span.name !== 'mastra.getStorage') {\n orderedTree.push(span);\n }\n }\n\n if (!minStartTime || !maxEndTime) return [];\n\n const totalDurationMs = (maxEndTime - minStartTime) / 1000;\n\n return buildTree(orderedTree, minStartTime, totalDurationMs);\n};\n","import { TraceTree } from '@/ds/components/TraceTree';\n\nimport type { Span, SpanNode } from './types';\nimport { Trace } from '@/ds/components/TraceTree/Trace';\nimport { Spans } from '@/ds/components/TraceTree/Spans';\nimport { Span as SpanComponent } from '@/ds/components/TraceTree/Span';\nimport { TraceContext } from './context/trace-context';\nimport { useContext } from 'react';\nimport { getSpanVariant } from './utils/getSpanVariant';\nimport { createSpanTree } from './utils/createSpanTree';\n\ninterface NestedSpansProps {\n spanNodes: SpanNode[];\n}\n\nconst NestedSpans = ({ spanNodes }: NestedSpansProps) => {\n const { span: activeSpan, setSpan } = useContext(TraceContext);\n\n return (\n <Spans>\n {spanNodes.map(spanNode => {\n const isActive = spanNode.id === activeSpan?.id;\n\n return (\n <SpanComponent\n key={spanNode.id}\n spans={spanNode.children.length > 0 && <NestedSpans spanNodes={spanNode.children} />}\n durationMs={spanNode.duration}\n offsetMs={spanNode.offset}\n variant={getSpanVariant(spanNode)}\n isActive={isActive}\n onClick={() => setSpan(spanNode)}\n totalDurationMs={spanNode.totalDurationMs}\n >\n {spanNode.name}\n </SpanComponent>\n );\n })}\n </Spans>\n );\n};\n\nexport interface SpanViewProps {\n trace: Span[];\n}\n\nexport default function SpanView({ trace }: SpanViewProps) {\n // SQL query sorts by startTime in descending order, so we need to reverse and copy the array for spans to show in correct order\n const { span: activeSpan, setSpan } = useContext(TraceContext);\n\n const tree = createSpanTree(trace);\n\n return (\n <TraceTree>\n {tree.map(node => (\n <Trace\n name={node.name}\n durationMs={node.duration}\n totalDurationMs={node.totalDurationMs}\n spans={<NestedSpans spanNodes={node.children} />}\n variant={getSpanVariant(node)}\n isActive={node.id === activeSpan?.id}\n onClick={() => setSpan(node)}\n />\n ))}\n </TraceTree>\n );\n}\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { Txt } from '../Txt';\n\nexport interface HeaderProps {\n children?: React.ReactNode;\n border?: boolean;\n}\n\nexport const Header = ({ children, border = true }: HeaderProps) => {\n return (\n <header\n className={clsx('h-header-default z-50 flex w-full items-center gap-[18px] bg-transparent px-5', {\n 'border-b-sm border-border1': border,\n })}\n >\n {children}\n </header>\n );\n};\n\nexport const HeaderTitle = ({ children }: HeaderProps) => {\n return (\n <Txt as=\"h1\" variant=\"ui-lg\" className=\"font-medium text-white\">\n {children}\n </Txt>\n );\n};\n\nexport const HeaderAction = ({ children }: HeaderProps) => {\n return <div className=\"ml-auto\">{children}</div>;\n};\n\nexport const HeaderGroup = ({ children }: HeaderProps) => {\n return <div className=\"gap-lg flex items-center\">{children}</div>;\n};\n","import { ChevronDown, ChevronUp, X } from 'lucide-react';\nimport { useContext } from 'react';\n\nimport { Button } from '@/ds/components/Button';\n\nimport { TraceContext } from './context/trace-context';\nimport SpanView from './trace-span-view';\nimport { Txt } from '@/ds/components/Txt';\n\nimport { Icon } from '@/ds/icons';\nimport { Header } from '@/ds/components/Header';\nimport { Badge } from '@/ds/components/Badge';\n\nexport function TraceDetails() {\n const { trace, currentTraceIndex, prevTrace, nextTrace, traces } = useContext(TraceContext);\n\n const actualTrace = traces[currentTraceIndex];\n\n if (!actualTrace || !trace) return null;\n\n const hasFailure = trace.some(span => span.status.code !== 0);\n\n return (\n <aside>\n <Header>\n <div className=\"flex items-center gap-1\">\n <Button className=\"bg-transparent border-none\" onClick={prevTrace} disabled={currentTraceIndex === 0}>\n <Icon>\n <ChevronUp />\n </Icon>\n </Button>\n <Button\n className=\"bg-transparent border-none\"\n onClick={nextTrace}\n disabled={currentTraceIndex === traces.length - 1}\n >\n <Icon>\n <ChevronDown />\n </Icon>\n </Button>\n </div>\n <div className=\"flex items-center gap-1 justify-between w-full\">\n <Txt variant=\"ui-lg\" className=\"font-medium text-icon5 shrink-0\">\n Trace <span className=\"ml-2 text-icon3\">{actualTrace.traceId.substring(0, 7)}</span>\n </Txt>\n\n {hasFailure && (\n <Badge variant=\"error\" icon={<X />}>\n Failed\n </Badge>\n )}\n </div>\n </Header>\n\n <div className=\"p-5\">\n <SpanView trace={trace} />\n </div>\n </aside>\n );\n}\n","import { Colors } from '@/ds/tokens';\nimport { jsonLanguage } from '@codemirror/lang-json';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { useMemo } from 'react';\n\nexport const useCodemirrorTheme = () => {\n return useMemo(\n () =>\n draculaInit({\n settings: {\n fontFamily: 'var(--geist-mono)',\n fontSize: '0.8rem',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: Colors.surface3,\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n }),\n [],\n );\n};\n\nexport const SyntaxHighlighter = ({ data }: { data: Record<string, unknown> }) => {\n const formattedCode = JSON.stringify(data, null, 2);\n const theme = useCodemirrorTheme();\n\n return (\n <div className=\"rounded-md bg-[#1a1a1a] p-1 font-mono\">\n <CodeMirror value={formattedCode} theme={theme} extensions={[jsonLanguage]} />\n </div>\n );\n};\n","import type { RefinedTrace, Span } from './types';\n\n/**\n *\n * @param duration duration of the span\n * @param fixedPoint how many fixed point\n * @returns duration in milliseconds in fixed points\n */\nexport function formatDuration(duration: number, fixedPoint = 2) {\n const durationInSecs = duration / 1_000;\n\n return durationInSecs.toFixed(fixedPoint);\n}\n\nexport function formatOtelTimestamp(otelTimestamp: number) {\n const date = new Date(otelTimestamp / 1000);\n\n return new Intl.DateTimeFormat('en-US', {\n month: 'numeric',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true,\n }).format(date);\n}\n\nexport function formatOtelTimestamp2(otelTimestamp: number) {\n const date = new Date(otelTimestamp / 1000000);\n\n return new Intl.DateTimeFormat('en-US', {\n month: 'numeric',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true,\n }).format(date);\n}\n\nexport function transformKey(key: string) {\n if (key.includes('.argument.')) {\n return `Input`;\n }\n if (key.includes('.result')) {\n return 'Output';\n }\n\n const newKey = key.split('.').join(' ').split('_').join(' ').replaceAll('ai', 'AI');\n\n return newKey.substring(0, 1).toUpperCase() + newKey.substring(1);\n}\n\nexport function cleanString(string: string) {\n return (\n string\n .replace(/\\\\n/g, '')\n // Also handle any actual newlines\n .replace(/\\n/g, '')\n // Clean up any resulting extra spaces\n .replace(/\\s+/g, ' ')\n .trim()\n );\n}\n\nexport const allowedAiSpanAttributes = [\n 'operation.name',\n 'ai.operationId',\n 'ai.model.provider',\n 'ai.model.id',\n 'ai.prompt.format',\n 'ai.prompt.messages',\n 'ai.prompt.tools',\n 'ai.prompt.toolChoice',\n 'ai.settings.toolChoice',\n 'ai.schema',\n 'ai.settings.output',\n 'ai.response.object',\n 'ai.response.text',\n 'ai.response.timestamp',\n 'componentName',\n 'ai.usage.promptTokens',\n 'ai.usage.completionTokens',\n];\n","import { useContext } from 'react';\n\nimport { SyntaxHighlighter } from '@/components/syntax-highlighter';\n\nimport { TraceContext } from './context/trace-context';\n\nimport { formatOtelTimestamp, formatOtelTimestamp2, transformKey } from './utils';\nimport { Header } from '@/ds/components/Header';\nimport { ChevronDown, ChevronUp, X } from 'lucide-react';\nimport { Icon, LatencyIcon } from '@/ds/icons';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\nimport { Badge } from '@/ds/components/Badge';\nimport { getSpanVariant } from './utils/getSpanVariant';\nimport { spanIconMap, spanVariantClasses } from '@/ds/components/TraceTree/Span';\nimport type { Span } from './types';\nimport React from 'react';\nimport { toSigFigs } from '@/lib/number';\n\nexport function SpanDetail() {\n const { span, setSpan, trace, setIsOpen } = useContext(TraceContext);\n if (!span || !trace) return null;\n\n // Span order is reversed\n const prevSpan = () => {\n const currentIndex = trace.findIndex(t => t.id === span.id);\n if (currentIndex !== -1 && currentIndex < trace.length - 1) {\n setSpan(trace[currentIndex + 1]);\n }\n };\n\n // Span order is reversed\n const nextSpan = () => {\n const currentIndex = trace.findIndex(t => t.id === span.id);\n if (currentIndex !== -1 && currentIndex > 0) {\n setSpan(trace[currentIndex - 1]);\n }\n };\n\n const SpanIcon = spanIconMap[getSpanVariant(span)];\n const variantClass = spanVariantClasses[getSpanVariant(span)];\n\n return (\n <aside>\n <Header>\n <div className=\"flex items-center gap-1\">\n <Button className=\"bg-transparent border-none\" onClick={prevSpan}>\n <Icon>\n <ChevronUp />\n </Icon>\n </Button>\n <Button className=\"bg-transparent border-none\" onClick={nextSpan}>\n <Icon>\n <ChevronDown />\n </Icon>\n </Button>\n </div>\n <div>\n <Txt variant=\"ui-lg\" className=\"font-medium text-icon5\" as=\"h2\">\n Span <span className=\"ml-2 text-icon3\">{span.id.substring(0, 7)}</span>\n </Txt>\n </div>\n <div className=\"ml-auto flex items-center gap-2\">\n <Button className=\"bg-transparent border-none\" onClick={() => setIsOpen(false)}>\n <Icon>\n <X />\n </Icon>\n </Button>\n </div>\n </Header>\n\n <div className=\"p-5\">\n <Txt variant=\"header-md\" as=\"h3\" className=\"text-icon-6 flex items-center gap-4 pb-3\">\n <Icon size=\"lg\" className=\"bg-surface4 p-1 rounded-md\">\n <SpanIcon className={variantClass} />\n </Icon>\n\n {span.name}\n </Txt>\n\n <div className=\"flex flex-row gap-2 items-center\">\n {span.status.code === 0 ? (\n <Badge icon={<LatencyIcon />} variant=\"success\">\n {toSigFigs(span.duration / 1000, 3)}ms\n </Badge>\n ) : (\n <Badge variant=\"error\" icon={<X />}>\n Failed in {toSigFigs(span.duration / 1000, 3)}ms\n </Badge>\n )}\n </div>\n\n <hr className=\"border-border1 border-sm my-5\" />\n <dl className=\"grid grid-cols-2 justify-between gap-2\">\n <dt className=\"font-medium text-ui-md text-icon3\">ID</dt>\n <dd className=\"text-ui-md text-icon6\">{span.id}</dd>\n\n <dt className=\"font-medium text-ui-md text-icon3\">Created at</dt>\n <dd className=\"text-ui-md text-icon6\">{span.startTime ? formatOtelTimestamp(span.startTime) : ''}</dd>\n </dl>\n\n {span.attributes && <Attributes attributes={span.attributes} />}\n {span.events?.length > 0 && <Events span={span} />}\n </div>\n </aside>\n );\n}\n\ninterface AttributesProps {\n attributes: Record<string, string | number | boolean | null>;\n}\n\nfunction Attributes({ attributes }: AttributesProps) {\n if (!attributes) return null;\n\n const entries = Object.entries(attributes);\n if (entries.length === 0) return null;\n\n const keysToHide = ['http.request_id', 'componentName'];\n\n return (\n <div>\n {entries\n .filter(([key]) => !keysToHide.includes(key))\n .map(([key, val]) => {\n return (\n <div key={key}>\n <hr className=\"border-border1 border-sm my-5\" />\n\n <Txt as=\"h4\" variant=\"ui-md\" className=\"text-icon3 pb-2\">\n {transformKey(key)}\n </Txt>\n\n <AttributeValue value={val} />\n </div>\n );\n })}\n </div>\n );\n}\n\ninterface AttributeValueProps {\n value: string | number | boolean | null | Record<string, string | number | boolean | null>;\n}\n\nconst AttributeValue = ({ value }: AttributeValueProps) => {\n if (!value)\n return (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-icon6\">\n N/A\n </Txt>\n );\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-icon6\">\n {String(value)}\n </Txt>\n );\n }\n\n if (typeof value === 'object') {\n return <SyntaxHighlighter data={value} />;\n }\n\n try {\n return <SyntaxHighlighter data={JSON.parse(value)} />;\n } catch {\n return (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-icon6\">\n {String(value)}\n </Txt>\n );\n }\n};\n\ninterface EventsProps {\n span: Span;\n}\n\nfunction Events({ span }: EventsProps) {\n if (!span.events) return null;\n\n return (\n <div>\n <hr className=\"border-border1 border-sm my-5\" />\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-icon6 pb-2\">\n Events\n </Txt>\n\n {span.events.map(event => {\n const isLast = event === span.events[span.events.length - 1];\n\n return (\n <React.Fragment key={event.name}>\n <div key={event.name}>\n <dl className=\"grid grid-cols-2 justify-between gap-2 pb-2\">\n <dt className=\"font-medium text-ui-md text-icon3\">Name</dt>\n <dd className=\"text-ui-md text-icon6\">{event.name}</dd>\n\n <dt className=\"font-medium text-ui-md text-icon3\">Time</dt>\n <dd className=\"text-ui-md text-icon6\">\n {event.timeUnixNano ? formatOtelTimestamp2(Number(event.timeUnixNano)) : 'N/A'}\n </dd>\n </dl>\n\n {event.attributes?.length > 0 ? (\n <ul className=\"space-y-2\">\n {event.attributes\n .filter(attribute => attribute !== null)\n .map(attribute => (\n <li key={attribute.key}>\n <Txt as=\"h4\" variant=\"ui-md\" className=\"text-icon3 pb-2\">\n {transformKey(attribute.key)}\n </Txt>\n <AttributeValue value={attribute.value} />\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n\n {!isLast && <hr className=\"border-border1 border-sm my-5\" />}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n","import { MastraResizablePanel } from '@/domains/resizable-panel';\nimport { TraceDetails } from '@/domains/traces/trace-details';\nimport { SpanDetail } from '@/domains/traces/trace-span-details';\n\nexport interface TracesSidebarProps {\n className?: string;\n onResize?: (width: number) => void;\n width: number;\n}\n\nexport const TracesSidebar = ({ onResize }: TracesSidebarProps) => {\n return (\n <MastraResizablePanel\n className=\"h-full absolute right-0 inset-y-0 bg-surface2\"\n defaultWidth={80}\n minimumWidth={50}\n maximumWidth={80}\n setCurrentWidth={onResize}\n >\n <div className=\"h-full grid grid-cols-2\">\n <div className=\"overflow-x-scroll w-full h-[calc(100%-40px)]\">\n <TraceDetails />\n </div>\n\n <div className=\"h-[calc(100%-40px)] overflow-x-scroll w-full border-l border-border1\">\n <SpanDetail />\n </div>\n </div>\n </MastraResizablePanel>\n );\n};\n","import { useContext, useState } from 'react';\n\nimport { TraceContext, TraceProvider } from '@/domains/traces/context/trace-context';\n\nimport { TracesTable } from '../../traces/traces-table';\nimport { TracesSidebar } from '@/domains/traces/traces-sidebar';\nimport clsx from 'clsx';\nimport { RefinedTrace } from '@/domains/traces/types';\n\nexport interface AgentTracesProps {\n className?: string;\n traces: RefinedTrace[];\n error: { message: string } | null;\n}\n\nexport function AgentTraces({ className, traces, error }: AgentTracesProps) {\n return (\n <TraceProvider initialTraces={traces || []}>\n <AgentTracesInner className={className} traces={traces} error={error} />\n </TraceProvider>\n );\n}\n\nfunction AgentTracesInner({ className, traces, error }: AgentTracesProps) {\n const [sidebarWidth, setSidebarWidth] = useState(100);\n const { isOpen: open } = useContext(TraceContext);\n\n return (\n <div className={clsx('h-full relative overflow-hidden flex', className)}>\n <div className=\"h-full overflow-y-scroll w-full\">\n <TracesTable traces={traces} error={error} />\n </div>\n\n {open && <TracesSidebar width={sidebarWidth} onResize={setSidebarWidth} />}\n </div>\n );\n}\n","'use client';\n\nimport {\n useExternalStoreRuntime,\n ThreadMessageLike,\n AppendMessage,\n AssistantRuntimeProvider,\n} from '@assistant-ui/react';\nimport { processDataStream } from '@ai-sdk/ui-utils';\nimport { useState, ReactNode, useEffect } from 'react';\n\nimport { ChatProps } from '@/types';\nimport { useMastraClient } from '@/contexts/mastra-client-context';\nconst convertMessage = (message: ThreadMessageLike): ThreadMessageLike => {\n return message;\n};\n\nexport function MastraNetworkRuntimeProvider({\n children,\n agentId,\n initialMessages,\n memory,\n threadId,\n refreshThreadList,\n modelSettings = {},\n}: Readonly<{\n children: ReactNode;\n}> &\n ChatProps) {\n const [isRunning, setIsRunning] = useState(false);\n const [messages, setMessages] = useState<ThreadMessageLike[]>(initialMessages || []);\n const [currentThreadId, setCurrentThreadId] = useState<string | undefined>(threadId);\n\n const { frequencyPenalty, presencePenalty, maxRetries, maxSteps, maxTokens, temperature, topK, topP, instructions } =\n modelSettings;\n\n useEffect(() => {\n if (messages.length === 0 || currentThreadId !== threadId) {\n if (initialMessages && threadId && memory) {\n setMessages(initialMessages);\n setCurrentThreadId(threadId);\n }\n }\n }, [initialMessages, threadId, memory, messages]);\n\n const mastra = useMastraClient();\n\n const network = mastra.getNetwork(agentId);\n\n const onNew = async (message: AppendMessage) => {\n if (message.content[0]?.type !== 'text') throw new Error('Only text messages are supported');\n\n const input = message.content[0].text;\n setMessages(currentConversation => [...currentConversation, { role: 'user', content: input }]);\n setIsRunning(true);\n\n try {\n const response = await network.stream({\n messages: [\n {\n role: 'user',\n content: input,\n },\n ],\n runId: agentId,\n frequencyPenalty,\n presencePenalty,\n maxRetries,\n maxSteps,\n maxTokens,\n temperature,\n topK,\n topP,\n instructions,\n ...(memory ? { threadId, resourceId: agentId } : {}),\n });\n\n if (!response.body) {\n throw new Error('No response body');\n }\n\n const parts = [];\n let content = '';\n let currentTextPart: { type: 'text'; text: string } | null = null;\n\n let assistantMessageAdded = false;\n\n function updater() {\n setMessages(currentConversation => {\n const message: ThreadMessageLike = {\n role: 'assistant',\n content: [{ type: 'text', text: content }],\n };\n\n if (!assistantMessageAdded) {\n assistantMessageAdded = true;\n return [...currentConversation, message];\n }\n return [...currentConversation.slice(0, -1), message];\n });\n }\n\n await processDataStream({\n stream: response.body,\n onTextPart(value) {\n if (currentTextPart == null) {\n currentTextPart = {\n type: 'text',\n text: value,\n };\n parts.push(currentTextPart);\n } else {\n currentTextPart.text += value;\n }\n content += value;\n updater();\n },\n async onToolCallPart(value) {\n console.log('Tool call received:', value);\n\n // Update the messages state\n setMessages(currentConversation => {\n // Get the last message (should be the assistant's message)\n const lastMessage = currentConversation[currentConversation.length - 1];\n\n // Only process if the last message is from the assistant\n if (lastMessage && lastMessage.role === 'assistant') {\n // Create a new message with the tool call part\n const updatedMessage: ThreadMessageLike = {\n ...lastMessage,\n content: Array.isArray(lastMessage.content)\n ? [\n ...lastMessage.content,\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ]\n : [\n ...(typeof lastMessage.content === 'string' ? [{ type: 'text', text: lastMessage.content }] : []),\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ],\n };\n\n // Replace the last message with the updated one\n return [...currentConversation.slice(0, -1), updatedMessage];\n }\n\n // If there's no assistant message yet, create one\n const newMessage: ThreadMessageLike = {\n role: 'assistant',\n content: [\n { type: 'text', text: content },\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ],\n };\n return [...currentConversation, newMessage];\n });\n },\n async onToolResultPart(value: any) {\n console.log('Tool call result received:', value);\n\n // Update the messages state\n setMessages(currentConversation => {\n // Get the last message (should be the assistant's message)\n const lastMessage = currentConversation[currentConversation.length - 1];\n\n // Only process if the last message is from the assistant and has content array\n if (lastMessage && lastMessage.role === 'assistant' && Array.isArray(lastMessage.content)) {\n // Find the tool call content part that this result belongs to\n const updatedContent = lastMessage.content.map(part => {\n if (typeof part === 'object' && part.type === 'tool-call' && part.toolCallId === value.toolCallId) {\n return {\n ...part,\n result: value.result,\n };\n }\n return part;\n });\n\n // Create a new message with the updated content\n const updatedMessage: ThreadMessageLike = {\n ...lastMessage,\n content: updatedContent,\n };\n\n // Replace the last message with the updated one\n return [...currentConversation.slice(0, -1), updatedMessage];\n }\n\n return currentConversation;\n });\n },\n onErrorPart(error) {\n throw new Error(error);\n },\n });\n\n console.log(messages);\n\n setIsRunning(false);\n } catch (error) {\n console.error('Error occurred in MastraRuntimeProvider', error);\n setIsRunning(false);\n }\n };\n\n const runtime = useExternalStoreRuntime<ThreadMessageLike>({\n isRunning,\n messages,\n convertMessage,\n onNew,\n });\n\n return <AssistantRuntimeProvider runtime={runtime}> {children} </AssistantRuntimeProvider>;\n}\n","import React, { Suspense, useState, useEffect } from 'react';\nimport Markdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport type { Components } from 'react-markdown';\n\nimport { CopyButton } from '../../components/ui/copy-button';\nimport { cn } from '../../lib/utils';\n\nimport { highlight } from './syntax-highlighter';\n\ninterface MarkdownRendererProps {\n children: string;\n}\n\nexport function MarkdownRenderer({ children }: MarkdownRendererProps) {\n const processedText = children.replace(/\\\\n/g, '\\n');\n\n return (\n <Markdown remarkPlugins={[remarkGfm]} components={COMPONENTS} className=\"space-y-3\">\n {processedText}\n </Markdown>\n );\n}\n\ninterface HighlightedPre extends React.HTMLAttributes<HTMLPreElement> {\n children: string;\n language: string;\n}\n\nconst HighlightedPre = React.memo(({ children, language, ...props }: HighlightedPre) => {\n const [tokens, setTokens] = useState<any[]>([]);\n\n useEffect(() => {\n highlight(children, language).then(tokens => {\n if (tokens) setTokens(tokens);\n });\n }, [children, language]);\n\n if (!tokens.length) {\n return <pre {...props}>{children}</pre>;\n }\n\n return (\n <pre {...props}>\n <code>\n {tokens.map((line, lineIndex) => (\n <>\n <span key={lineIndex}>\n {line.map((token: any, tokenIndex: number) => {\n const style = typeof token.htmlStyle === 'string' ? undefined : token.htmlStyle;\n\n return (\n <span\n key={tokenIndex}\n className=\"text-shiki-light bg-shiki-light-bg dark:text-shiki-dark dark:bg-shiki-dark-bg\"\n style={style}\n >\n {token.content}\n </span>\n );\n })}\n </span>\n {lineIndex !== tokens.length - 1 && '\\n'}\n </>\n ))}\n </code>\n </pre>\n );\n});\nHighlightedPre.displayName = 'HighlightedCode';\n\ninterface CodeBlockProps extends React.HTMLAttributes<HTMLPreElement> {\n children: React.ReactNode;\n className?: string;\n language: string;\n}\n\nconst CodeBlock = ({ children, className, language, ...restProps }: CodeBlockProps) => {\n const code = typeof children === 'string' ? children : childrenTakeAllStringContents(children);\n\n const preClass = cn(\n 'overflow-x-scroll rounded-md border bg-background/50 p-4 font-mono text-sm [scrollbar-width:none]',\n className,\n );\n\n return (\n <div className=\"group/code relative mb-4\">\n <Suspense\n fallback={\n <pre className={preClass} {...restProps}>\n {children}\n </pre>\n }\n >\n <HighlightedPre language={language} className={preClass}>\n {code}\n </HighlightedPre>\n </Suspense>\n\n <div className=\"invisible absolute right-2 top-2 flex space-x-1 rounded-lg p-1 opacity-0 transition-all duration-200 group-hover/code:visible group-hover/code:opacity-100\">\n <CopyButton content={code} copyMessage=\"Copied code to clipboard\" />\n </div>\n </div>\n );\n};\n\nfunction childrenTakeAllStringContents(element: any): string {\n if (typeof element === 'string') {\n return element;\n }\n\n if (element?.props?.children) {\n let children = element.props.children;\n\n if (Array.isArray(children)) {\n return children.map(child => childrenTakeAllStringContents(child)).join('');\n } else {\n return childrenTakeAllStringContents(children);\n }\n }\n\n return '';\n}\n\n// Create component wrappers with className\nconst COMPONENTS: Components = {\n h1: ({ children, ...props }) => (\n <h1 className=\"text-2xl font-semibold\" {...props}>\n {children}\n </h1>\n ),\n h2: ({ children, ...props }) => (\n <h2 className=\"font-semibold text-xl\" {...props}>\n {children}\n </h2>\n ),\n h3: ({ children, ...props }) => (\n <h3 className=\"font-semibold text-lg\" {...props}>\n {children}\n </h3>\n ),\n h4: ({ children, ...props }) => (\n <h4 className=\"font-semibold text-base\" {...props}>\n {children}\n </h4>\n ),\n h5: ({ children, ...props }) => (\n <h5 className=\"font-medium\" {...props}>\n {children}\n </h5>\n ),\n strong: ({ children, ...props }) => (\n <strong className=\"font-semibold\" {...props}>\n {children}\n </strong>\n ),\n a: ({ children, ...props }) => (\n <a className=\"underline underline-offset-2\" {...props}>\n {children}\n </a>\n ),\n blockquote: ({ children, ...props }) => (\n <blockquote className=\"border-l-2 border-primary pl-4\" {...props}>\n {children}\n </blockquote>\n ),\n code: ({ children, className, ...rest }: any) => {\n const match = /language-(\\w+)/.exec(className || '');\n return match ? (\n <CodeBlock className={className} language={match[1]} {...rest}>\n {children}\n </CodeBlock>\n ) : (\n <code\n className={cn(\n 'font-mono [:not(pre)>&]:rounded-md [:not(pre)>&]:bg-background/50 [:not(pre)>&]:px-1 [:not(pre)>&]:py-0.5',\n )}\n {...rest}\n >\n {children}\n </code>\n );\n },\n pre: ({ children }: any) => children,\n ol: ({ children, ...props }) => (\n <ol className=\"list-decimal space-y-2 pl-6\" {...props}>\n {children}\n </ol>\n ),\n ul: ({ children, ...props }) => (\n <ul className=\"list-disc space-y-2 pl-6\" {...props}>\n {children}\n </ul>\n ),\n li: ({ children, ...props }) => (\n <li className=\"my-1.5\" {...props}>\n {children}\n </li>\n ),\n table: ({ children, ...props }) => (\n <table className=\"w-full border-collapse overflow-y-auto rounded-md border border-foreground/20\" {...props}>\n {children}\n </table>\n ),\n th: ({ children, ...props }) => (\n <th\n className=\"border border-foreground/20 px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right\"\n {...props}\n >\n {children}\n </th>\n ),\n td: ({ children, ...props }) => (\n <td\n className=\"border border-foreground/20 px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right\"\n {...props}\n >\n {children}\n </td>\n ),\n tr: ({ children, ...props }) => (\n <tr className=\"m-0 border-t p-0 even:bg-muted\" {...props}>\n {children}\n </tr>\n ),\n p: ({ children, ...props }) => (\n <p className=\"whitespace-pre-wrap leading-relaxed\" {...props}>\n {children}\n </p>\n ),\n hr: ({ ...props }) => <hr className=\"border-foreground/20\" {...props} />,\n};\n\nexport default MarkdownRenderer;\n","import { MarkdownRenderer } from '../../components/ui/markdown-renderer';\nimport { ToolCallContentPartComponent } from '@assistant-ui/react';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon, LoaderCircle, ExternalLinkIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { cn } from '@/lib/utils';\n\n// Define custom color classes with improved contrast\nconst purpleClasses = {\n bg: 'bg-[rgba(124,80,175,0.25)]',\n text: 'text-[rgb(180,140,230)]',\n hover: 'hover:text-[rgb(200,160,250)]',\n border: 'border-[rgba(124,80,175,0.5)]',\n};\n\n// Use a more generic type for the component to avoid TypeScript errors\nexport const ToolFallback: ToolCallContentPartComponent = props => {\n const { toolCallId, toolName, args, argsText, result, status } = props;\n const [expandedAgents, setExpandedAgents] = useState<Record<string, boolean>>({});\n\n // Handle case where args or args.actions is undefined\n const actions = args?.actions || [];\n\n // Skip rendering if no actions\n if (actions.length === 0) {\n return null;\n }\n\n const toggleAgent = (agentId: string) => {\n setExpandedAgents(prev => ({\n ...prev,\n [agentId]: !prev[agentId],\n }));\n };\n\n // Extract URLs from result for optional linking\n const extractUrls = (text: unknown): string[] => {\n if (typeof text !== 'string') return [];\n const urlRegex = /(https?:\\/\\/[^\\s]+)/g;\n return text.match(urlRegex) || [];\n };\n\n return (\n <div className=\"mb-4 w-full rounded-lg border border-gray-700 overflow-hidden shadow-md\">\n {actions.map((action: any, index: number) => {\n const agentId = `${toolCallId || 'tool'}-${action.agent}-${index}`;\n const isExpanded = expandedAgents[agentId] || false;\n const urls = result ? extractUrls(result) : [];\n\n return (\n <div key={agentId} className={`border-b border-gray-700 ${index === actions.length - 1 ? 'border-b-0' : ''}`}>\n <div\n className=\"flex items-center justify-between px-4 py-3 bg-gray-900 hover:bg-gray-800 cursor-pointer\"\n onClick={() => toggleAgent(agentId)}\n >\n <div className=\"flex items-center gap-3\">\n <div className={cn('flex h-6 w-6 items-center justify-center rounded-full', purpleClasses.bg)}>\n {status?.type === 'running' ? (\n <LoaderCircle className={cn('h-4 w-4 animate-spin', purpleClasses.text)} />\n ) : (\n <CheckIcon className={cn('h-4 w-4', purpleClasses.text)} />\n )}\n </div>\n <div>\n <p className=\"font-medium text-sm text-gray-100\">{action.agent?.replaceAll('_', ' ')}</p>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <span className={cn('text-xs px-2 py-1 rounded-full', purpleClasses.bg, purpleClasses.text)}>\n {status?.type === 'running' ? 'Processing...' : 'Complete'}\n </span>\n {isExpanded ? (\n <ChevronUpIcon className=\"h-4 w-4 text-gray-300\" />\n ) : (\n <ChevronDownIcon className=\"h-4 w-4 text-gray-300\" />\n )}\n </div>\n </div>\n\n {isExpanded && (\n <div className=\"px-4 py-3 bg-[#111]\">\n <div className=\"mb-3\">\n <p className=\"text-xs font-semibold text-gray-300 mb-1\">Query:</p>\n <div className=\"p-2 bg-gray-900 rounded border border-gray-700\">\n <p className=\"text-sm text-gray-200 whitespace-pre-wrap\">{action.input}</p>\n </div>\n </div>\n\n {result && (\n <div>\n <p className=\"text-xs font-semibold text-gray-300 mb-1\">Result:</p>\n <div className=\"p-2 bg-gray-900 rounded border border-gray-700 max-h-60 overflow-auto\">\n {typeof result === 'string' ? (\n <div className=\"text-sm text-gray-200\">\n <MarkdownRenderer>{result}</MarkdownRenderer>\n </div>\n ) : (\n <p className=\"text-sm text-gray-200 whitespace-pre-wrap\">{JSON.stringify(result, null, 2)}</p>\n )}\n </div>\n\n {urls.length > 0 && (\n <div className=\"mt-2\">\n <p className=\"text-xs font-semibold text-gray-300 mb-1\">Sources:</p>\n <div className=\"flex flex-wrap gap-2\">\n {urls.slice(0, 3).map((url, i) => (\n <a\n key={i}\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'inline-flex items-center gap-1 text-xs hover:underline',\n purpleClasses.text,\n purpleClasses.hover,\n )}\n >\n <span>Source {i + 1}</span>\n <ExternalLinkIcon className=\"h-3 w-3\" />\n </a>\n ))}\n {urls.length > 3 && <span className=\"text-xs text-gray-400\">+{urls.length - 3} more</span>}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n};\n","import { createContext, useState, ReactNode } from 'react';\nimport { ModelSettings } from '../../types';\n\ntype NetworkContextType = {\n modelSettings: ModelSettings;\n setModelSettings: React.Dispatch<React.SetStateAction<ModelSettings>>;\n resetModelSettings: () => void;\n chatWithLoop: boolean;\n setChatWithLoop: React.Dispatch<React.SetStateAction<boolean>>;\n maxIterations: number | undefined;\n setMaxIterations: React.Dispatch<React.SetStateAction<number | undefined>>;\n};\n\nconst defaultModelSettings: ModelSettings = {\n maxRetries: 2,\n maxSteps: 5,\n temperature: 0.5,\n topP: 1,\n};\n\nexport const NetworkContext = createContext<NetworkContextType>({} as NetworkContextType);\n\nexport function NetworkProvider({ children }: { children: ReactNode }) {\n const [modelSettings, setModelSettings] = useState<ModelSettings>(defaultModelSettings);\n const [chatWithLoop, setChatWithLoop] = useState<boolean>(false);\n const [maxIterations, setMaxIterations] = useState<number | undefined>(undefined);\n\n const resetModelSettings = () => {\n setModelSettings(defaultModelSettings);\n setChatWithLoop(false);\n setMaxIterations(undefined);\n };\n\n return (\n <NetworkContext.Provider\n value={{\n modelSettings,\n setModelSettings,\n resetModelSettings,\n chatWithLoop,\n setChatWithLoop,\n maxIterations,\n setMaxIterations,\n }}\n >\n {children}\n </NetworkContext.Provider>\n );\n}\n","import { Thread } from '@/components/assistant-ui/thread';\nimport { MastraNetworkRuntimeProvider } from '@/services/network-runtime-provider';\nimport { ChatProps } from '@/types';\nimport { ToolFallback } from './tool-fallback';\nimport { useContext } from 'react';\nimport { NetworkContext } from './network-context';\n\nexport const NetworkChat = ({ agentId, memory }: ChatProps) => {\n const { modelSettings } = useContext(NetworkContext);\n\n return (\n <MastraNetworkRuntimeProvider agentId={agentId} memory={memory} modelSettings={modelSettings}>\n <Thread ToolFallback={ToolFallback} />\n </MastraNetworkRuntimeProvider>\n );\n};\n","import { NetworkContext } from '@/domains/networks';\nimport React, { createContext, useContext, ReactNode, useState } from 'react';\n\n//the whole workflow execution state.\n\ntype StateValue = {\n executionSteps: Array<string>;\n steps: Record<string, any>;\n runId?: string;\n};\n\ntype State = Record<string, StateValue>;\n\ntype VNextNetworkChatContextType = {\n state: State;\n handleStep: (uuid: string, record: Record<string, any>) => void;\n setState: React.Dispatch<React.SetStateAction<State>>;\n};\n\nconst VNextNetworkChatContext = createContext<VNextNetworkChatContextType | undefined>(undefined);\n\nexport const VNextNetworkChatProvider = ({ children }: { children: ReactNode }) => {\n const [state, setState] = useState<State>({});\n\n const { chatWithLoop } = useContext(NetworkContext);\n\n const handleStep = (uuid: string, record: Record<string, any>) => {\n const addFinishStep = chatWithLoop && record.type === 'step-finish' && record.payload?.id === 'final-step';\n const id = record?.type === 'finish' ? 'finish' : record.type === 'start' ? 'start' : record.payload?.id;\n if (id.includes('mapping_')) return;\n\n setState(prevState => {\n const current = prevState[uuid];\n const currentMetadata = current?.steps?.[id]?.metadata;\n\n let startTime = currentMetadata?.startTime;\n let endTime = currentMetadata?.endTime;\n\n if (record.type === 'step-start') {\n startTime = Date.now();\n }\n\n if (record.type === 'step-finish') {\n endTime = Date.now();\n }\n\n // const newPayload = chatWithLoop\n // ? { ...(state[uuid]?.steps?.[id]?.[record.type] || {}), ...record.payload }\n // : record.payload;\n\n return {\n ...prevState,\n [uuid]: {\n ...current,\n runId: current?.runId || record?.payload?.runId,\n executionSteps: current?.steps?.[id]\n ? [...current?.executionSteps, ...(addFinishStep ? ['finish'] : [])]\n : [...(current?.executionSteps || []), id],\n steps: {\n ...current?.steps,\n [id]: {\n ...(current?.steps?.[id] || {}),\n [record.type]: record.payload,\n metadata: {\n startTime,\n endTime,\n },\n },\n },\n },\n };\n });\n };\n\n return (\n <VNextNetworkChatContext.Provider value={{ state, handleStep, setState }}>\n {children}\n </VNextNetworkChatContext.Provider>\n );\n};\n\nexport const useVNextNetworkChat = () => {\n const context = useContext(VNextNetworkChatContext);\n if (context === undefined) {\n throw new Error('useVNextNetworkChat must be used within a VNextNetworkChatProvider');\n }\n return context;\n};\n","import { cn } from '@/lib/utils';\n\nfunction Spinner({ color = '#fff', className }: { color?: string; className?: string }) {\n return (\n <svg\n className={cn('animate-spin duration-700', className)}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" stroke={color} />\n </svg>\n );\n}\n\nexport default Spinner;\n","import { toSigFigs } from '@/lib/number';\nimport { useEffect, useState } from 'react';\n\ninterface ClockProps {\n startedAt: number;\n endedAt?: number;\n}\n\nexport const Clock = ({ startedAt, endedAt }: ClockProps) => {\n const [time, setTime] = useState(startedAt);\n\n useEffect(() => {\n const interval = setInterval(() => {\n setTime(Date.now());\n }, 100);\n\n return () => clearInterval(interval);\n }, [startedAt]);\n\n const timeDiff = endedAt ? endedAt - startedAt : time - startedAt;\n\n return <span className=\"text-xs text-icon3\">{toSigFigs(timeDiff, 3)}ms</span>;\n};\n","import { cn } from '../../lib/utils';\n\nfunction Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn('animate-pulse rounded-md bg-muted/50', className)} {...props} />;\n}\n\nexport { Skeleton };\n","export const lodashTitleCase = (str: string): string => {\n // First convert to camel case (handles various separators like spaces, hyphens, underscores)\n const camelCased = str\n .replace(/[-_\\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))\n .replace(/^(.)/, char => char.toLowerCase());\n\n // Then convert to start case (capitalize first letter of each word)\n return camelCased\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, str => str.toUpperCase())\n .trim();\n};\n\nexport const toTitleCase = (str: string, splitChar = ' ') => {\n return str\n .split(splitChar)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n};\n","import Dagre from '@dagrejs/dagre';\nimport { Workflow, SerializedStepFlowEntry } from '@mastra/core/workflows';\nimport type { StepCondition } from '@mastra/core/workflows/legacy';\nimport type { Node, Edge } from '@xyflow/react';\nimport { MarkerType } from '@xyflow/react';\n\nexport type ConditionConditionType = 'if' | 'else' | 'when' | 'until' | 'while' | 'dountil' | 'dowhile';\n\nexport type Condition =\n | {\n type: ConditionConditionType;\n ref: {\n step:\n | {\n id: string;\n }\n | 'trigger';\n path: string;\n };\n query: Record<string, any>;\n conj?: 'and' | 'or' | 'not';\n fnString?: never;\n }\n | {\n type: ConditionConditionType;\n fnString: string;\n ref?: never;\n query?: never;\n conj?: never;\n };\n\nexport const pathAlphabet = 'abcdefghijklmnopqrstuvwxyz'.toUpperCase().split('');\n\nexport function extractConditions(group: StepCondition<any, any>, type: ConditionConditionType) {\n let result: Condition[] = [];\n if (!group) return result;\n\n function recurse(group: StepCondition<any, any>, conj?: 'and' | 'or' | 'not') {\n if (typeof group === 'string') {\n result.push({ type, fnString: group });\n } else {\n const simpleCondition = Object.entries(group).find(([key]) => key.includes('.'));\n if (simpleCondition) {\n const [key, queryValue] = simpleCondition;\n const [stepId, ...pathParts] = key.split('.');\n const ref = {\n step: {\n id: stepId,\n },\n path: pathParts.join('.'),\n };\n result.push({\n type,\n ref,\n query: { [queryValue === true || queryValue === false ? 'is' : 'eq']: String(queryValue) },\n conj,\n });\n }\n if ('ref' in group) {\n const { ref, query } = group;\n result.push({ type, ref, query, conj });\n }\n if ('and' in group) {\n for (const subGroup of group.and) {\n recurse({ ...subGroup }, 'and');\n }\n }\n if ('or' in group) {\n for (const subGroup of group.or) {\n recurse({ ...subGroup }, 'or');\n }\n }\n if ('not' in group) {\n recurse({ ...group.not }, 'not');\n }\n }\n }\n\n recurse(group);\n return result.reverse();\n}\n\nconst getLayoutedElements = (nodes: Node[], edges: Edge[]) => {\n const g = new Dagre.graphlib.Graph().setDefaultEdgeLabel(() => ({}));\n g.setGraph({ rankdir: 'TB' });\n\n edges.forEach(edge => g.setEdge(edge.source, edge.target));\n nodes.forEach(node =>\n g.setNode(node.id, {\n ...node,\n width: node.measured?.width ?? 274,\n height: node.measured?.height ?? (node?.data?.isLarge ? 260 : 100),\n }),\n );\n\n Dagre.layout(g);\n\n const fullWidth = g.graph()?.width ? g.graph().width! / 2 : 0;\n const fullHeight = g.graph()?.height ? g.graph().height! / 2 : 0;\n\n return {\n nodes: nodes.map(node => {\n const position = g.node(node.id);\n // We are shifting the dagre node position (anchor=center center) to the top left\n // so it matches the React Flow node anchor point (top left).\n const positionX = position.x - (node.measured?.width ?? 274) / 2;\n const positionY = position.y - (node.measured?.height ?? (node?.data?.isLarge ? 260 : 100)) / 2;\n const x = positionX;\n const y = positionY;\n\n return { ...node, position: { x, y } };\n }),\n edges,\n fullWidth,\n fullHeight,\n };\n};\n\nconst defaultEdgeOptions = {\n animated: true,\n markerEnd: {\n type: MarkerType.ArrowClosed,\n width: 20,\n height: 20,\n color: '#8e8e8e',\n },\n};\n\nexport type WStep = {\n [key: string]: {\n id: string;\n description: string;\n workflowId?: string;\n stepGraph?: any;\n stepSubscriberGraph?: any;\n };\n};\n\nexport const contructLegacyNodesAndEdges = ({\n stepGraph,\n stepSubscriberGraph,\n steps: mainSteps = {},\n}: {\n stepGraph: any;\n stepSubscriberGraph: any;\n steps?: WStep;\n}): { nodes: Node[]; edges: Edge[] } => {\n if (!stepGraph) {\n return { nodes: [], edges: [] };\n }\n const { initial, ...stepsList } = stepGraph;\n if (!initial.length) {\n return { nodes: [], edges: [] };\n }\n\n let nodes: Node[] = [];\n let edges: Edge[] = [];\n let allSteps: any[] = [];\n\n for (const [_index, _step] of initial.entries()) {\n const step = _step.step;\n const stepId = step.id;\n // let childrenNodes: Node[] = [];\n const steps = [_step, ...(stepsList?.[stepId] || [])]?.reduce((acc, step, i) => {\n const { stepGraph: stepWflowGraph, stepSubscriberGraph: stepWflowSubscriberGraph } =\n mainSteps[step.step.id] || {};\n const hasGraph = !!stepWflowGraph;\n\n const nodeId = nodes.some(node => node.id === step.step.id) ? `${step.step.id}-${i}` : step.step.id;\n\n let newStep = {\n ...step.step,\n label: step.step.id,\n originalId: step.step.id,\n type: hasGraph ? 'nested-node' : 'default-node',\n id: nodeId,\n stepGraph: stepWflowGraph,\n stepSubscriberGraph: stepWflowSubscriberGraph,\n };\n let conditionType: ConditionConditionType = 'when';\n if (step.config?.serializedWhen) {\n conditionType = step.step.id?.endsWith('_if') ? 'if' : step.step.id?.endsWith('_else') ? 'else' : 'when';\n const conditions = extractConditions(step.config.serializedWhen, conditionType);\n const conditionStep = {\n id: crypto.randomUUID(),\n conditions,\n type: 'condition-node',\n isLarge:\n (conditions?.length > 1 || conditions.some(({ fnString }) => !!fnString)) && conditionType !== 'else',\n };\n\n acc.push(conditionStep);\n }\n if (conditionType === 'if' || conditionType === 'else') {\n newStep = {\n ...newStep,\n label: conditionType === 'if' ? 'start if' : 'start else',\n };\n }\n newStep = {\n ...newStep,\n label: step.config?.loopLabel || newStep.label,\n };\n\n acc.push(newStep);\n\n return acc;\n }, []);\n\n allSteps = [...allSteps, ...steps];\n\n const newNodes = [...steps].map((step: any, index: number) => {\n const subscriberGraph = stepSubscriberGraph?.[step.id];\n\n return {\n id: step.id,\n position: { x: _index * 300, y: index * 100 },\n type: step.type,\n data: {\n conditions: step.conditions,\n label: step.label,\n description: step.description,\n withoutTopHandle: subscriberGraph?.[step.id] ? false : index === 0,\n withoutBottomHandle: subscriberGraph ? false : index === steps.length - 1,\n isLarge: step.isLarge,\n stepGraph: step.stepGraph,\n stepSubscriberGraph: step.stepSubscriberGraph,\n },\n };\n }) as Node[];\n\n nodes = [...nodes, ...newNodes];\n\n const edgeSteps = [...steps].slice(0, -1);\n\n const newEdges = edgeSteps.map((step: any, index: number) => ({\n id: `e${step.id}-${steps[index + 1].id}`,\n source: step.id,\n target: steps[index + 1].id,\n ...defaultEdgeOptions,\n }));\n\n edges = [...edges, ...newEdges];\n }\n\n if (!stepSubscriberGraph || !Object.keys(stepSubscriberGraph).length) {\n const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(nodes, edges);\n return { nodes: layoutedNodes, edges: layoutedEdges };\n }\n\n for (const [connectingStepId, stepInfoGraph] of Object.entries(stepSubscriberGraph)) {\n const { initial, ...stepsList } = stepInfoGraph as any;\n\n let untilOrWhileConditionId: string | undefined;\n const loopResultSteps: { id: string; loopType: string }[] = [];\n let finishedLoopStep: any | undefined;\n let otherLoopStep: any | undefined;\n\n if (initial.length) {\n for (const [_index, _step] of initial.entries()) {\n const step = _step.step;\n const stepId = step.id;\n // let childrenNodes: Node[] = [];\n const steps = [_step, ...(stepsList?.[stepId] || [])]?.reduce((acc, step, i) => {\n const { stepGraph: stepWflowGraph, stepSubscriberGraph: stepWflowSubscriberGraph } =\n mainSteps[step.step.id] || {};\n const hasGraph = !!stepWflowGraph;\n const nodeId = nodes.some(node => node.id === step.step.id) ? `${step.step.id}-${i}` : step.step.id;\n\n let newStep = {\n ...step.step,\n originalId: step.step.id,\n label: step.step.id,\n type: hasGraph ? 'nested-node' : 'default-node',\n id: nodeId,\n stepGraph: stepWflowGraph,\n stepSubscriberGraph: stepWflowSubscriberGraph,\n };\n let conditionType: ConditionConditionType = 'when';\n const isFinishedLoop = step.config?.loopLabel?.endsWith('loop finished');\n if (step.config?.serializedWhen && !isFinishedLoop) {\n conditionType = step.step.id?.endsWith('_if')\n ? 'if'\n : step.step.id?.endsWith('_else')\n ? 'else'\n : (step.config?.loopType ?? 'when');\n\n const conditions = extractConditions(step.config.serializedWhen, conditionType);\n const conditionStep = {\n id: crypto.randomUUID(),\n conditions,\n type: 'condition-node',\n isLarge:\n (conditions?.length > 1 || conditions.some(({ fnString }) => !!fnString)) && conditionType !== 'else',\n };\n if (conditionType === 'until' || conditionType === 'while') {\n untilOrWhileConditionId = conditionStep.id;\n }\n\n acc.push(conditionStep);\n }\n if (isFinishedLoop) {\n const loopResultStep = {\n id: crypto.randomUUID(),\n type: 'loop-result-node',\n loopType: 'finished',\n loopResult: step.config.loopType === 'until' ? true : false,\n };\n loopResultSteps.push(loopResultStep);\n acc.push(loopResultStep);\n }\n if (!isFinishedLoop && step.config?.loopType) {\n const loopResultStep = {\n id: crypto.randomUUID(),\n type: 'loop-result-node',\n loopType: step.config.loopType,\n loopResult: step.config.loopType === 'until' ? false : true,\n };\n loopResultSteps.push(loopResultStep);\n acc.push(loopResultStep);\n }\n if (conditionType === 'if' || conditionType === 'else') {\n newStep = {\n ...newStep,\n label: conditionType === 'if' ? 'start if' : 'start else',\n };\n }\n if (step.config.loopType) {\n if (isFinishedLoop) {\n finishedLoopStep = newStep;\n } else {\n otherLoopStep = newStep;\n }\n }\n newStep = {\n ...newStep,\n loopType: isFinishedLoop ? 'finished' : step.config.loopType,\n label: step.config?.loopLabel || newStep.label,\n };\n acc.push(newStep);\n return acc;\n }, []);\n\n let afterStep: any = [];\n let afterStepStepList = connectingStepId?.includes('&&') ? connectingStepId.split('&&') : [];\n if (connectingStepId?.includes('&&')) {\n afterStep = [\n {\n id: connectingStepId,\n label: connectingStepId,\n type: 'after-node',\n steps: afterStepStepList,\n },\n ];\n }\n\n const newNodes = [...steps, ...afterStep].map((step: any, index: number) => {\n const subscriberGraph = stepSubscriberGraph?.[step.id];\n const withBottomHandle = step.originalId === connectingStepId || subscriberGraph;\n return {\n id: step.id,\n position: { x: _index * 300 + 300, y: index * 100 + 100 },\n type: step.type,\n data: {\n conditions: step.conditions,\n label: step.label,\n description: step.description,\n result: step.loopResult,\n loopType: step.loopType,\n steps: step.steps,\n withoutBottomHandle: withBottomHandle ? false : index === steps.length - 1,\n isLarge: step.isLarge,\n stepGraph: step.stepGraph,\n stepSubscriberGraph: step.stepSubscriberGraph,\n },\n };\n }) as Node[];\n\n nodes = [...nodes, ...newNodes].map(node => ({\n ...node,\n data: {\n ...node.data,\n withoutBottomHandle: afterStepStepList.includes(node.id) ? false : node.data.withoutBottomHandle,\n },\n }));\n\n const edgeSteps = [...steps].slice(0, -1);\n\n const firstEdgeStep = steps[0];\n const lastEdgeStep = steps[steps.length - 1];\n\n const afterEdges = afterStepStepList?.map((step: any) => ({\n id: `e${step}-${connectingStepId}`,\n source: step,\n target: connectingStepId,\n ...defaultEdgeOptions,\n }));\n\n const finishedLoopResult = loopResultSteps?.find(step => step.loopType === 'finished');\n\n const newEdges = edgeSteps\n .map((step: any, index: number) => ({\n id: `e${step.id}-${steps[index + 1].id}`,\n source: step.id,\n target: steps[index + 1].id,\n remove: finishedLoopResult?.id === steps[index + 1].id, //remove if target is a finished loop result\n ...defaultEdgeOptions,\n }))\n ?.filter((edge: any) => !edge.remove);\n const connectingEdge =\n connectingStepId === firstEdgeStep.id\n ? []\n : [\n {\n id: `e${connectingStepId}-${firstEdgeStep.id}`,\n source: connectingStepId,\n target: firstEdgeStep.id,\n remove: finishedLoopResult?.id === firstEdgeStep.id,\n ...defaultEdgeOptions,\n },\n ]?.filter((edge: any) => !edge.remove); //remove if target is a finished loop result\n\n const lastEdge =\n lastEdgeStep.originalId === connectingStepId\n ? [\n {\n id: `e${lastEdgeStep.id}-${connectingStepId}`,\n source: lastEdgeStep.id,\n target: connectingStepId,\n ...defaultEdgeOptions,\n },\n ]\n : [];\n\n edges = [...edges, ...afterEdges, ...connectingEdge, ...newEdges, ...lastEdge];\n\n allSteps = [...allSteps, ...steps];\n }\n\n if (untilOrWhileConditionId && loopResultSteps.length && finishedLoopStep && otherLoopStep) {\n const loopResultStepsEdges = loopResultSteps.map(step => ({\n id: `e${untilOrWhileConditionId}-${step.id}`,\n source: untilOrWhileConditionId!,\n target: step.id,\n ...defaultEdgeOptions,\n }));\n\n const finishedLoopResult = loopResultSteps?.find(res => res.loopType === 'finished');\n const otherLoopResult = loopResultSteps?.find(res => res.loopType !== 'finished');\n\n const otherLoopEdge = {\n id: `e${otherLoopResult?.id}-${otherLoopStep?.id}`,\n source: otherLoopResult?.id!,\n target: otherLoopStep.id!,\n ...defaultEdgeOptions,\n };\n\n const finishedLoopEdge = {\n id: `e${finishedLoopResult?.id}-${finishedLoopStep?.id}`,\n source: finishedLoopResult?.id!,\n target: finishedLoopStep.id!,\n ...defaultEdgeOptions,\n };\n\n edges = [...edges, ...loopResultStepsEdges, otherLoopEdge, finishedLoopEdge];\n }\n }\n }\n const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(nodes, edges);\n\n return { nodes: layoutedNodes, edges: layoutedEdges };\n};\n\nconst getStepNodeAndEdge = ({\n stepFlow,\n xIndex,\n yIndex,\n prevNodeIds,\n prevStepIds,\n nextStepFlow,\n condition,\n allPrevNodeIds,\n}: {\n stepFlow: SerializedStepFlowEntry;\n xIndex: number;\n yIndex: number;\n prevNodeIds: string[];\n prevStepIds: string[];\n nextStepFlow?: SerializedStepFlowEntry;\n condition?: { id: string; fn: string };\n allPrevNodeIds: string[];\n}): { nodes: Node[]; edges: Edge[]; nextPrevNodeIds: string[]; nextPrevStepIds: string[] } => {\n let nextNodeIds: string[] = [];\n let nextStepIds: string[] = [];\n if (nextStepFlow?.type === 'step' || nextStepFlow?.type === 'foreach' || nextStepFlow?.type === 'loop') {\n const nextStepId = allPrevNodeIds?.includes(nextStepFlow.step.id)\n ? `${nextStepFlow.step.id}-${yIndex + 1}`\n : nextStepFlow.step.id;\n nextNodeIds = [nextStepId];\n nextStepIds = [nextStepFlow.step.id];\n }\n if (nextStepFlow?.type === 'parallel') {\n nextNodeIds =\n nextStepFlow?.steps.map(step => {\n const stepId = (step as { type: 'step'; step: { id: string } }).step.id;\n const nextStepId = allPrevNodeIds?.includes(stepId) ? `${stepId}-${yIndex + 1}` : stepId;\n return nextStepId;\n }) || [];\n nextStepIds = nextStepFlow?.steps.map(step => (step as { type: 'step'; step: { id: string } }).step.id) || [];\n }\n if (nextStepFlow?.type === 'conditional') {\n nextNodeIds = nextStepFlow?.serializedConditions.map(cond => cond.id) || [];\n nextStepIds = nextStepFlow?.steps?.map(step => (step as { type: 'step'; step: { id: string } }).step.id) || [];\n }\n\n if (stepFlow.type === 'step' || stepFlow.type === 'foreach') {\n const hasGraph = stepFlow.step.component === 'WORKFLOW';\n const nodeId = allPrevNodeIds?.includes(stepFlow.step.id) ? `${stepFlow.step.id}-${yIndex}` : stepFlow.step.id;\n const nodes = [\n ...(condition\n ? [\n {\n id: condition.id,\n position: { x: xIndex * 300, y: yIndex * 100 },\n type: 'condition-node',\n data: {\n label: condition.id,\n previousStepId: prevStepIds[prevStepIds.length - 1],\n nextStepId: stepFlow.step.id,\n withoutTopHandle: false,\n withoutBottomHandle: !nextNodeIds.length,\n isLarge: true,\n conditions: [{ type: 'when', fnString: condition.fn }],\n },\n },\n ]\n : []),\n {\n id: nodeId,\n position: { x: xIndex * 300, y: (yIndex + (condition ? 1 : 0)) * 100 },\n type: hasGraph ? 'nested-node' : 'default-node',\n data: {\n label: stepFlow.step.id,\n description: stepFlow.step.description,\n withoutTopHandle: condition ? false : !prevNodeIds.length,\n withoutBottomHandle: !nextNodeIds.length,\n stepGraph: hasGraph ? stepFlow.step.serializedStepFlow : undefined,\n mapConfig: stepFlow.step.mapConfig,\n },\n },\n ];\n const edges = [\n ...(!prevNodeIds.length\n ? []\n : condition\n ? [\n ...prevNodeIds.map((prevNodeId, i) => ({\n id: `e${prevNodeId}-${condition.id}`,\n source: prevNodeId,\n data: { previousStepId: prevStepIds[i], nextStepId: stepFlow.step.id },\n target: condition.id,\n ...defaultEdgeOptions,\n })),\n {\n id: `e${condition.id}-${nodeId}`,\n source: condition.id,\n data: { previousStepId: prevStepIds[prevStepIds.length - 1], nextStepId: stepFlow.step.id },\n target: nodeId,\n ...defaultEdgeOptions,\n },\n ]\n : prevNodeIds.map((prevNodeId, i) => ({\n id: `e${prevNodeId}-${nodeId}`,\n source: prevNodeId,\n data: { previousStepId: prevStepIds[i], nextStepId: stepFlow.step.id },\n target: nodeId,\n ...defaultEdgeOptions,\n }))),\n ...(!nextNodeIds.length\n ? []\n : nextNodeIds.map((nextNodeId, i) => ({\n id: `e${nodeId}-${nextNodeId}`,\n source: nodeId,\n data: { previousStepId: stepFlow.step.id, nextStepId: nextStepIds[i] },\n target: nextNodeId,\n ...defaultEdgeOptions,\n }))),\n ];\n return { nodes, edges, nextPrevNodeIds: [nodeId], nextPrevStepIds: [stepFlow.step.id] };\n }\n\n if (stepFlow.type === 'loop') {\n const { step: _step, serializedCondition, loopType } = stepFlow;\n const hasGraph = _step.component === 'WORKFLOW';\n const nodes = [\n {\n id: _step.id,\n position: { x: xIndex * 300, y: yIndex * 100 },\n type: hasGraph ? 'nested-node' : 'default-node',\n data: {\n label: _step.id,\n description: _step.description,\n withoutTopHandle: !prevNodeIds.length,\n withoutBottomHandle: false,\n stepGraph: hasGraph ? _step.serializedStepFlow : undefined,\n },\n },\n {\n id: serializedCondition.id,\n position: { x: xIndex * 300, y: (yIndex + 1) * 100 },\n type: 'condition-node',\n data: {\n label: serializedCondition.id,\n // conditionStepId: _step.id,\n previousStepId: _step.id,\n nextStepId: nextStepIds[0],\n withoutTopHandle: false,\n withoutBottomHandle: !nextNodeIds.length,\n isLarge: true,\n conditions: [{ type: loopType, fnString: serializedCondition.fn }],\n },\n },\n ];\n\n const edges = [\n ...(!prevNodeIds.length\n ? []\n : prevNodeIds.map((prevNodeId, i) => ({\n id: `e${prevNodeId}-${_step.id}`,\n source: prevNodeId,\n data: { previousStepId: prevStepIds[i], nextStepId: _step.id },\n target: _step.id,\n ...defaultEdgeOptions,\n }))),\n {\n id: `e${_step.id}-${serializedCondition.id}`,\n source: _step.id,\n data: { previousStepId: _step.id, nextStepId: nextStepIds[0] },\n target: serializedCondition.id,\n ...defaultEdgeOptions,\n },\n ...(!nextNodeIds.length\n ? []\n : nextNodeIds.map((nextNodeId, i) => ({\n id: `e${serializedCondition.id}-${nextNodeId}`,\n source: serializedCondition.id,\n data: { previousStepId: _step.id, nextStepId: nextStepIds[i] },\n target: nextNodeId,\n ...defaultEdgeOptions,\n }))),\n ];\n\n return { nodes, edges, nextPrevNodeIds: [serializedCondition.id], nextPrevStepIds: [_step.id] };\n }\n\n if (stepFlow.type === 'parallel') {\n let nodes: Node[] = [];\n let edges: Edge[] = [];\n let nextPrevStepIds: string[] = [];\n stepFlow.steps.forEach((_stepFlow, index) => {\n const {\n nodes: _nodes,\n edges: _edges,\n nextPrevStepIds: _nextPrevStepIds,\n } = getStepNodeAndEdge({\n stepFlow: _stepFlow,\n xIndex: index,\n yIndex,\n prevNodeIds,\n prevStepIds,\n nextStepFlow,\n allPrevNodeIds,\n });\n nodes.push(..._nodes);\n edges.push(..._edges);\n nextPrevStepIds.push(..._nextPrevStepIds);\n });\n\n return { nodes, edges, nextPrevNodeIds: nodes.map(node => node.id), nextPrevStepIds };\n }\n\n if (stepFlow.type === 'conditional') {\n let nodes: Node[] = [];\n let edges: Edge[] = [];\n let nextPrevStepIds: string[] = [];\n stepFlow.steps.forEach((_stepFlow, index) => {\n const {\n nodes: _nodes,\n edges: _edges,\n nextPrevStepIds: _nextPrevStepIds,\n } = getStepNodeAndEdge({\n stepFlow: _stepFlow,\n xIndex: index,\n yIndex,\n prevNodeIds,\n prevStepIds,\n nextStepFlow,\n condition: stepFlow.serializedConditions[index],\n allPrevNodeIds,\n });\n nodes.push(..._nodes);\n edges.push(..._edges);\n nextPrevStepIds.push(..._nextPrevStepIds);\n });\n\n return {\n nodes,\n edges,\n nextPrevNodeIds: nodes.filter(({ type }) => type !== 'condition-node').map(node => node.id),\n nextPrevStepIds,\n };\n }\n\n return { nodes: [], edges: [], nextPrevNodeIds: [], nextPrevStepIds: [] };\n};\n\nexport const constructNodesAndEdges = ({\n stepGraph,\n}: {\n stepGraph: Workflow['serializedStepGraph'];\n}): { nodes: Node[]; edges: Edge[] } => {\n if (!stepGraph) {\n return { nodes: [], edges: [] };\n }\n\n if (stepGraph.length === 0) {\n return { nodes: [], edges: [] };\n }\n\n let nodes: Node[] = [];\n let edges: Edge[] = [];\n\n let prevNodeIds: string[] = [];\n let prevStepIds: string[] = [];\n let allPrevNodeIds: string[] = [];\n\n for (let index = 0; index < stepGraph.length; index++) {\n const {\n nodes: _nodes,\n edges: _edges,\n nextPrevNodeIds,\n nextPrevStepIds,\n } = getStepNodeAndEdge({\n stepFlow: stepGraph[index],\n xIndex: index,\n yIndex: index,\n prevNodeIds,\n prevStepIds,\n nextStepFlow: index === stepGraph.length - 1 ? undefined : stepGraph[index + 1],\n allPrevNodeIds,\n });\n nodes.push(..._nodes);\n edges.push(..._edges);\n prevNodeIds = nextPrevNodeIds;\n prevStepIds = nextPrevStepIds;\n allPrevNodeIds.push(...prevNodeIds);\n }\n\n const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(nodes, edges);\n\n return { nodes: layoutedNodes, edges: layoutedEdges };\n};\n","import type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\nimport React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst textVariants = cva('block', {\n variants: {\n variant: {\n primary: 'text-text',\n secondary: 'text-text-dim',\n },\n size: {\n default: 'text-base',\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-md',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n weight: 'normal',\n },\n});\n\nexport interface TextProps\n extends React.HTMLAttributes<HTMLParagraphElement | HTMLSpanElement | HTMLDivElement>,\n VariantProps<typeof textVariants> {\n as?: 'p' | 'span' | 'div';\n}\n\nexport const Text = ({ className, weight, variant, as: Tag = 'span', size, ...props }: TextProps) => {\n return <Tag className={cn(textVariants({ size, variant, weight, className }))} {...props} />;\n};\n","import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { useAutoscroll } from '@/hooks/use-autoscroll';\n\ninterface ScrollAreaProps extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {\n viewPortClassName?: string;\n maxHeight?: string;\n autoScroll?: boolean;\n}\n\nconst ScrollArea = React.forwardRef<React.ElementRef<typeof ScrollAreaPrimitive.Root>, ScrollAreaProps>(\n ({ className, children, viewPortClassName, maxHeight, autoScroll = false, ...props }, ref) => {\n const areaRef = React.useRef<HTMLDivElement>(null);\n useAutoscroll(areaRef, { enabled: autoScroll });\n\n return (\n <ScrollAreaPrimitive.Root ref={ref} className={cn('relative overflow-hidden', className)} {...props}>\n <ScrollAreaPrimitive.Viewport\n ref={areaRef}\n className={cn('h-full w-full rounded-[inherit] [&>div]:!block', viewPortClassName)}\n style={maxHeight ? { maxHeight } : undefined}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n },\n);\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import type { WorkflowRunState, StepResult } from '@mastra/core/workflows';\n\nimport { ExtendedWorkflowWatchResult } from '@/hooks/use-workflows';\n\nexport function convertWorkflowRunStateToWatchResult(runState: WorkflowRunState): ExtendedWorkflowWatchResult {\n const runId = runState.runId;\n // Extract step information from the context\n const steps: Record<string, any> = {};\n const context = runState.context || {};\n\n // Convert each step in the context to the expected format\n Object.entries(context).forEach(([stepId, stepResult]) => {\n if (stepId !== 'input' && 'status' in stepResult) {\n const result = stepResult as StepResult<any, any, any, any>;\n steps[stepId] = {\n status: result.status,\n output: 'output' in result ? result.output : undefined,\n payload: 'payload' in result ? result.payload : undefined,\n resumePayload: 'resumePayload' in result ? result.resumePayload : undefined,\n error: 'error' in result ? result.error : undefined,\n startedAt: 'startedAt' in result ? result.startedAt : Date.now(),\n endedAt: 'endedAt' in result ? result.endedAt : undefined,\n suspendedAt: 'suspendedAt' in result ? result.suspendedAt : undefined,\n resumedAt: 'resumedAt' in result ? result.resumedAt : undefined,\n };\n }\n });\n\n // Determine the overall workflow status\n const status = determineWorkflowStatus(steps);\n\n return {\n type: 'watch',\n payload: {\n workflowState: {\n status,\n steps,\n result: runState.value,\n payload: context.input,\n error: undefined,\n },\n },\n eventTimestamp: new Date(runState.timestamp),\n runId,\n };\n}\n\nfunction determineWorkflowStatus(steps: Record<string, any>): 'running' | 'success' | 'failed' | 'suspended' {\n const stepStatuses = Object.values(steps).map(step => step.status);\n\n if (stepStatuses.includes('failed')) {\n return 'failed';\n }\n\n if (stepStatuses.includes('suspended')) {\n return 'suspended';\n }\n\n if (stepStatuses.every(status => status === 'success')) {\n return 'success';\n }\n\n return 'running';\n}\n","import { ExtendedLegacyWorkflowRunResult, ExtendedWorkflowWatchResult } from '@/hooks/use-workflows';\nimport { WorkflowRunState } from '@mastra/core';\nimport { createContext, useEffect, useState } from 'react';\nimport { convertWorkflowRunStateToWatchResult } from '../utils';\n\ntype WorkflowRunContextType = {\n legacyResult: ExtendedLegacyWorkflowRunResult | null;\n setLegacyResult: React.Dispatch<React.SetStateAction<any>>;\n result: ExtendedWorkflowWatchResult | null;\n setResult: React.Dispatch<React.SetStateAction<any>>;\n payload: any;\n setPayload: React.Dispatch<React.SetStateAction<any>>;\n clearData: () => void;\n snapshot?: WorkflowRunState;\n};\n\nexport const WorkflowRunContext = createContext<WorkflowRunContextType>({} as WorkflowRunContextType);\n\nexport function WorkflowRunProvider({\n children,\n snapshot,\n}: {\n children: React.ReactNode;\n snapshot?: WorkflowRunState;\n}) {\n const [legacyResult, setLegacyResult] = useState<ExtendedLegacyWorkflowRunResult | null>(null);\n const [result, setResult] = useState<ExtendedWorkflowWatchResult | null>(() =>\n snapshot ? convertWorkflowRunStateToWatchResult(snapshot) : null,\n );\n const [payload, setPayload] = useState<any>(null);\n\n const clearData = () => {\n setLegacyResult(null);\n setResult(null);\n setPayload(null);\n };\n\n useEffect(() => {\n if (snapshot?.runId) {\n setResult(convertWorkflowRunStateToWatchResult(snapshot));\n } else {\n setResult(null);\n }\n }, [snapshot?.runId ?? '']);\n\n return (\n <WorkflowRunContext.Provider\n value={{\n legacyResult,\n setLegacyResult,\n result,\n setResult,\n payload,\n setPayload,\n clearData,\n snapshot,\n }}\n >\n {children}\n </WorkflowRunContext.Provider>\n );\n}\n","import { useContext } from 'react';\nimport { WorkflowRunContext } from './workflow-run-context';\n\nexport type Step = {\n error?: any;\n startedAt: number;\n endedAt?: number;\n status: 'running' | 'success' | 'failed' | 'suspended';\n output?: any;\n input?: any;\n};\n\ntype UseCurrentRunReturnType = {\n steps: Record<string, Step>;\n isRunning: boolean;\n runId?: string;\n};\n\nexport const useCurrentRun = (): UseCurrentRunReturnType => {\n const context = useContext(WorkflowRunContext);\n\n const workflowCurrentSteps = context.result?.payload?.workflowState?.steps ?? {};\n const steps = Object.entries(workflowCurrentSteps).reduce((acc, [key, value]) => {\n return {\n ...acc,\n [key]: {\n error: value.error,\n startedAt: value.startedAt,\n endedAt: value.endedAt,\n status: value.status,\n output: value.output,\n input: value.payload,\n },\n };\n }, {});\n\n return { steps, isRunning: Boolean(context.payload), runId: context.result?.runId };\n};\n","import CodeMirror from '@uiw/react-codemirror';\nimport { CopyButton } from '@/components/ui/copy-button';\nimport { useCodemirrorTheme } from '@/components/syntax-highlighter';\nimport { jsonLanguage } from '@codemirror/lang-json';\n\nexport const CodeDialogContent = ({ data }: { data: any }) => {\n const theme = useCodemirrorTheme();\n\n if (typeof data !== 'string') {\n return (\n <div className=\"max-h-[500px] overflow-auto relative p-4\">\n <div className=\"absolute right-2 top-2 bg-surface4 rounded-full z-10\">\n <CopyButton content={JSON.stringify(data, null, 2)} />\n </div>\n <div className=\"bg-surface4 rounded-lg p-4\">\n <CodeMirror value={JSON.stringify(data, null, 2)} theme={theme} extensions={[jsonLanguage]} />\n </div>\n </div>\n );\n }\n\n try {\n const json = JSON.parse(data);\n return (\n <div className=\"max-h-[500px] overflow-auto relative p-4\">\n <div className=\"absolute right-2 top-2 bg-surface4 rounded-full z-10\">\n <CopyButton content={data} />\n </div>\n <div className=\"bg-surface4 rounded-lg p-4\">\n <CodeMirror value={JSON.stringify(json, null, 2)} theme={theme} extensions={[jsonLanguage]} />\n </div>\n </div>\n );\n } catch (error) {\n return (\n <div className=\"max-h-[500px] overflow-auto relative p-4\">\n <div className=\"absolute right-2 top-2 bg-surface4 rounded-full z-10\">\n <CopyButton content={data} />\n </div>\n <div className=\"bg-surface4 rounded-lg p-4\">\n <CodeMirror value={data} theme={theme} extensions={[]} />\n </div>\n </div>\n );\n }\n};\n","import { DialogTitle } from '@/components/ui/dialog';\nimport { DialogContent } from '@/components/ui/dialog';\nimport { Button } from '@/ds/components/Button';\nimport { Dialog } from '@/components/ui/dialog';\nimport { CodeDialogContent } from './workflow-code-dialog-content';\nimport { useState } from 'react';\n\nexport interface WorkflowStepActionBarProps {\n input?: any;\n output?: any;\n error?: any;\n stepName: string;\n mapConfig?: string;\n onShowTrace?: () => void;\n}\n\nexport const WorkflowStepActionBar = ({\n input,\n output,\n error,\n mapConfig,\n stepName,\n onShowTrace,\n}: WorkflowStepActionBarProps) => {\n const [isInputOpen, setIsInputOpen] = useState(false);\n const [isOutputOpen, setIsOutputOpen] = useState(false);\n const [isErrorOpen, setIsErrorOpen] = useState(false);\n const [isMapConfigOpen, setIsMapConfigOpen] = useState(false);\n\n const dialogContentClass = 'bg-surface2 rounded-lg border-sm border-border1 max-w-4xl w-full px-0';\n const dialogTitleClass = 'border-b-sm border-border1 pb-4 px-6';\n\n return (\n <>\n {(input || output || error || mapConfig) && (\n <div className=\"flex flex-wrap items-center bg-surface4 border-t-sm border-border1 px-2 py-1 gap-2 rounded-b-lg\">\n {mapConfig && (\n <>\n <Button onClick={() => setIsMapConfigOpen(true)}>Map config</Button>\n\n <Dialog open={isMapConfigOpen} onOpenChange={setIsMapConfigOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{stepName} map config</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={mapConfig} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n {input && (\n <>\n <Button onClick={() => setIsInputOpen(true)}>Input</Button>\n\n <Dialog open={isInputOpen} onOpenChange={setIsInputOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{stepName} input</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={input} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n\n {output && (\n <>\n <Button onClick={() => setIsOutputOpen(true)}>Output</Button>\n\n <Dialog open={isOutputOpen} onOpenChange={setIsOutputOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{stepName} output</DialogTitle>\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={output} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n\n {error && (\n <>\n <Button onClick={() => setIsErrorOpen(true)}>Error</Button>\n\n <Dialog open={isErrorOpen} onOpenChange={setIsErrorOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{stepName} error</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={error} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n\n {onShowTrace && <Button onClick={onShowTrace}>Show trace</Button>}\n </div>\n )}\n </>\n );\n};\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { Fragment, useState } from 'react';\n\nimport { Text } from '@/components/ui/text';\n\nimport { cn } from '@/lib/utils';\n\nimport type { Condition } from './utils';\nimport { Highlight, themes } from 'prism-react-renderer';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport { ChevronDown, Network } from 'lucide-react';\nimport { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog';\nimport { ScrollArea } from '@/components/ui/scroll-area';\nimport { useCurrentRun } from '../context/use-current-run';\nimport { Badge } from '@/ds/components/Badge';\nimport { Icon } from '@/ds/icons';\nimport { WorkflowStepActionBar } from './workflow-step-action-bar';\n\nexport type ConditionNode = Node<\n {\n conditions: Condition[];\n previousStepId: string;\n nextStepId: string;\n mapConfig?: string;\n },\n 'condition-node'\n>;\n\nexport function WorkflowConditionNode({ data }: NodeProps<ConditionNode>) {\n const { conditions, previousStepId, nextStepId } = data;\n const [open, setOpen] = useState(true);\n const [openDialog, setOpenDialog] = useState(false);\n const type = conditions[0]?.type;\n const isCollapsible = (conditions.some(condition => condition.fnString) || conditions?.length > 1) && type !== 'else';\n\n const { steps } = useCurrentRun();\n\n const previousStep = steps[previousStepId];\n const nextStep = steps[nextStepId];\n\n return (\n <>\n <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />\n\n <div\n className={cn(\n 'bg-surface3 rounded-lg w-[300px] border-sm border-border1',\n previousStep?.status === 'success' && nextStep && 'ring-2 ring-accent1',\n previousStep?.status === 'failed' && nextStep && 'ring-2 ring-accent2',\n )}\n >\n <Collapsible\n open={!isCollapsible ? true : open}\n onOpenChange={_open => {\n if (isCollapsible) {\n setOpen(_open);\n }\n }}\n >\n <CollapsibleTrigger className=\"flex items-center justify-between w-full px-3 py-2\">\n <Badge icon={type === 'when' ? <Network className=\"text-[#ECB047]\" /> : null}>{type?.toUpperCase()}</Badge>\n {isCollapsible && (\n <Icon>\n <ChevronDown\n className={cn('transition-transform text-icon3', {\n 'transform rotate-180': open,\n })}\n />\n </Icon>\n )}\n </CollapsibleTrigger>\n\n {type === 'else' ? null : (\n <CollapsibleContent className=\"flex flex-col gap-2 pb-2\">\n {conditions.map((condition, index) => {\n return condition.fnString ? (\n <div key={`${condition.fnString}-${index}`} className=\"px-3\">\n <Highlight theme={themes.oneDark} code={String(condition.fnString).trim()} language=\"javascript\">\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={`${className} relative font-mono p-3 w-full cursor-pointer rounded-lg text-xs !bg-surface4 overflow-scroll`}\n onClick={() => setOpenDialog(true)}\n style={style}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n <span className=\"inline-block mr-2 text-muted-foreground\">{i + 1}</span>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n\n <Dialog open={openDialog} onOpenChange={setOpenDialog}>\n <DialogContent className=\"max-w-[30rem] bg-surface2 p-4\">\n <DialogTitle className=\"sr-only\">Condition Function</DialogTitle>\n <ScrollArea className=\"w-full p-2 pt-4\" maxHeight=\"400px\">\n <Highlight\n theme={themes.oneDark}\n code={String(condition.fnString).trim()}\n language=\"javascript\"\n >\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={`${className} relative font-mono text-sm overflow-x-auto p-3 w-full rounded-lg mt-2 dark:bg-zinc-800`}\n style={{\n ...style,\n backgroundColor: '#121212',\n padding: '0 0.75rem 0 0',\n }}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n <span className=\"inline-block mr-2 text-muted-foreground\">{i + 1}</span>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n </ScrollArea>\n </DialogContent>\n </Dialog>\n </div>\n ) : (\n <Fragment key={`${condition.ref?.path}-${index}`}>\n {condition.ref?.step ? (\n <div className=\"flex items-center gap-1\">\n {index === 0 ? null : (\n <Badge icon={<Network className=\"text-[#ECB047]\" />}>\n {condition.conj?.toLocaleUpperCase() || 'WHEN'}\n </Badge>\n )}\n\n <Text size={'xs'} className=\" text-mastra-el-3 flex-1\">\n {(condition.ref.step as any).id || condition.ref.step}'s {condition.ref.path}{' '}\n {Object.entries(condition.query).map(([key, value]) => `${key} ${String(value)}`)}\n </Text>\n </div>\n ) : null}\n </Fragment>\n );\n })}\n </CollapsibleContent>\n )}\n </Collapsible>\n\n <WorkflowStepActionBar stepName={nextStepId} input={previousStep?.output} mapConfig={data.mapConfig} />\n </div>\n\n <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />\n </>\n );\n}\n","import { Handle, Position, type NodeProps, type Node } from '@xyflow/react';\nimport { CircleDashed, Loader2, PauseIcon } from 'lucide-react';\nimport { useCurrentRun } from '../context/use-current-run';\nimport { CheckIcon, CrossIcon, Icon } from '@/ds/icons';\nimport { Txt } from '@/ds/components/Txt';\n\nimport { Clock } from './workflow-clock';\n\nimport { cn } from '@/lib/utils';\nimport { WorkflowStepActionBar } from './workflow-step-action-bar';\n\nexport type DefaultNode = Node<\n {\n label: string;\n description?: string;\n withoutTopHandle?: boolean;\n withoutBottomHandle?: boolean;\n mapConfig?: string;\n },\n 'default-node'\n>;\n\nexport interface WorkflowDefaultNodeProps {\n data: DefaultNode['data'];\n onShowTrace?: ({ runId, stepName }: { runId: string; stepName: string }) => void;\n parentWorkflowName?: string;\n}\n\nexport function WorkflowDefaultNode({\n data,\n onShowTrace,\n parentWorkflowName,\n}: NodeProps<DefaultNode> & WorkflowDefaultNodeProps) {\n const { steps, isRunning, runId } = useCurrentRun();\n const { label, description, withoutTopHandle, withoutBottomHandle } = data;\n\n const fullLabel = parentWorkflowName ? `${parentWorkflowName}.${label}` : label;\n\n const step = steps[fullLabel];\n\n return (\n <>\n {!withoutTopHandle && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n\n <div\n className={cn(\n 'bg-surface3 rounded-lg w-[274px] border-sm border-border1 pt-2',\n step?.status === 'success' && 'ring-2 ring-accent1',\n step?.status === 'failed' && 'ring-2 ring-accent2',\n )}\n >\n <div className={cn('flex items-center gap-2 px-3', !description && 'pb-2')}>\n {isRunning && (\n <Icon>\n {step?.status === 'failed' && <CrossIcon className=\"text-accent2\" />}\n {step?.status === 'success' && <CheckIcon className=\"text-accent1\" />}\n {step?.status === 'suspended' && <PauseIcon className=\"text-icon3\" />}\n {step?.status === 'running' && <Loader2 className=\"text-icon6 animate-spin\" />}\n {!step && <CircleDashed className=\"text-icon2\" />}\n </Icon>\n )}\n <Txt variant=\"ui-lg\" className=\"text-icon6 font-medium inline-flex items-center gap-1 justify-between w-full\">\n {label} {step?.startedAt && <Clock startedAt={step.startedAt} endedAt={step.endedAt} />}\n </Txt>\n </div>\n\n {description && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 px-3 pb-2\">\n {description}\n </Txt>\n )}\n\n <WorkflowStepActionBar\n stepName={label}\n input={step?.input}\n output={step?.output}\n error={step?.error}\n mapConfig={data.mapConfig}\n onShowTrace={runId && onShowTrace ? () => onShowTrace?.({ runId, stepName: fullLabel }) : undefined}\n />\n </div>\n\n {!withoutBottomHandle && (\n <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden', color: 'red' }} />\n )}\n </>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { Fragment, useState } from 'react';\n\nimport { Text } from '@/components/ui/text';\n\nimport { cn } from '@/lib/utils';\n\nimport { Highlight, themes } from 'prism-react-renderer';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport { ChevronDown, Footprints } from 'lucide-react';\n\nexport type AfterNode = Node<\n {\n steps: string[];\n },\n 'after-node'\n>;\n\nexport function WorkflowAfterNode({ data }: NodeProps<AfterNode>) {\n const { steps } = data;\n const [open, setOpen] = useState(true);\n\n return (\n <Collapsible\n open={open}\n onOpenChange={setOpen}\n className={cn('bg-mastra-bg-3 rounded-md w-[274px] flex flex-col p-2 gap-2')}\n >\n <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />\n\n <CollapsibleTrigger className=\"flex items-center justify-between w-full\">\n <Text\n size={'xs'}\n weight=\"medium\"\n className=\"text-mastra-el-3 bg-mastra-bg-11 my-auto block rounded-[0.125rem] px-2 py-1 text-[10px] w-fit\"\n >\n AFTER\n </Text>\n <ChevronDown\n className={cn('w-4 h-4 transition-transform', {\n 'transform rotate-180': open,\n })}\n />\n </CollapsibleTrigger>\n <CollapsibleContent className=\"flex flex-col gap-2\">\n {steps.map(step => (\n <div className=\"text-sm bg-mastra-bg-9 flex items-center gap-[6px] rounded-sm p-2\" key={step}>\n <Footprints className=\"text-current w-4 h-4\" />\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {step}\n </Text>\n </div>\n ))}\n </CollapsibleContent>\n <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />\n </Collapsible>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { CircleCheck, CircleX } from 'lucide-react';\n\nimport { Text } from '@/components/ui/text';\n\nimport { cn } from '@/lib/utils';\n\nexport type LoopResultNode = Node<\n {\n result: boolean;\n },\n 'loop-result-node'\n>;\n\nexport function WorkflowLoopResultNode({ data }: NodeProps<LoopResultNode>) {\n const { result } = data;\n return (\n <div className={cn('bg-mastra-bg-8 rounded-md w-[274px]')}>\n <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />\n <div className=\"p-2\">\n <div className=\"text-sm bg-mastra-bg-9 flex items-center gap-[6px] rounded-sm p-2\">\n {result ? <CircleCheck className=\"text-current w-4 h-4\" /> : <CircleX className=\"text-current w-4 h-4\" />}\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {String(result)}\n </Text>\n </div>\n </div>\n <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />\n </div>\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { cn } from '@/lib/utils';\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn('relative flex w-full touch-none select-none items-center', className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary/50\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border border-primary/50 bg-white shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","import React, { forwardRef } from 'react';\nimport { Maximize, Minus, Plus } from 'lucide-react';\n\nimport { Panel, useViewport, useReactFlow, PanelProps } from '@xyflow/react';\n\nimport { Slider } from '@/components/ui/slider';\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\n\nexport const ZoomSlider = forwardRef<HTMLDivElement, Omit<PanelProps, 'children'>>(({ className, ...props }) => {\n const { zoom } = useViewport();\n const { zoomTo, zoomIn, zoomOut, fitView } = useReactFlow();\n\n return (\n <Panel className={cn('flex gap-1 rounded-md bg-primary-foreground p-1 text-foreground', className)} {...props}>\n <Button variant=\"ghost\" size=\"icon\" onClick={() => zoomOut({ duration: 300 })}>\n <Minus className=\"h-4 w-4\" />\n </Button>\n <Slider\n className=\"w-[140px]\"\n value={[zoom]}\n min={0.01}\n max={1}\n step={0.01}\n onValueChange={values => {\n zoomTo(values[0]);\n }}\n />\n <Button variant=\"ghost\" size=\"icon\" onClick={() => zoomIn({ duration: 300 })}>\n <Plus className=\"h-4 w-4\" />\n </Button>\n <Button className=\"min-w-20 tabular-nums\" variant=\"ghost\" onClick={() => zoomTo(1, { duration: 300 })}>\n {(100 * zoom).toFixed(0)}%\n </Button>\n <Button variant=\"ghost\" size=\"icon\" onClick={() => fitView({ duration: 300, maxZoom: 1 })}>\n <Maximize className=\"h-4 w-4\" />\n </Button>\n </Panel>\n );\n});\n\nZoomSlider.displayName = 'ZoomSlider';\n","import {\n ReactFlow,\n MiniMap,\n Background,\n useNodesState,\n useEdgesState,\n BackgroundVariant,\n NodeProps,\n} from '@xyflow/react';\nimport '@xyflow/react/dist/style.css';\nimport { SerializedStepFlowEntry } from '@mastra/core/workflows';\n\nimport { constructNodesAndEdges } from './utils';\nimport { WorkflowConditionNode } from './workflow-condition-node';\nimport { DefaultNode, WorkflowDefaultNode } from './workflow-default-node';\nimport { WorkflowAfterNode } from './workflow-after-node';\nimport { WorkflowLoopResultNode } from './workflow-loop-result-node';\nimport { useEffect, useState } from 'react';\nimport Spinner from '@/components/ui/spinner';\nimport { NestedNode, WorkflowNestedNode } from './workflow-nested-node';\nimport { ZoomSlider } from './zoom-slider';\nimport { useCurrentRun } from '../context/use-current-run';\n\nexport interface WorkflowNestedGraphProps {\n stepGraph: SerializedStepFlowEntry[];\n open: boolean;\n workflowName: string;\n}\n\nexport function WorkflowNestedGraph({ stepGraph, open, workflowName }: WorkflowNestedGraphProps) {\n const { nodes: initialNodes, edges: initialEdges } = constructNodesAndEdges({\n stepGraph,\n });\n const [isMounted, setIsMounted] = useState(false);\n const [nodes, _, onNodesChange] = useNodesState(initialNodes);\n const [edges] = useEdgesState(initialEdges);\n const { steps } = useCurrentRun();\n\n const nodeTypes = {\n 'default-node': (props: NodeProps<DefaultNode>) => (\n <WorkflowDefaultNode parentWorkflowName={workflowName} {...props} />\n ),\n 'condition-node': WorkflowConditionNode,\n 'after-node': WorkflowAfterNode,\n 'loop-result-node': WorkflowLoopResultNode,\n 'nested-node': (props: NodeProps<NestedNode>) => (\n <WorkflowNestedNode parentWorkflowName={workflowName} {...props} />\n ),\n };\n\n useEffect(() => {\n if (open) {\n setTimeout(() => {\n setIsMounted(true);\n }, 500); // Delay to ensure modal is fully rendered\n }\n }, [open]);\n\n return (\n <div className=\"w-full h-full relative bg-surface1\">\n {isMounted ? (\n <ReactFlow\n nodes={nodes}\n edges={edges.map(e => ({\n ...e,\n style: {\n ...e.style,\n stroke:\n steps[`${workflowName}.${e.data?.previousStepId}`]?.status === 'success' &&\n steps[`${workflowName}.${e.data?.nextStepId}`]\n ? '#22c55e'\n : undefined,\n },\n }))}\n fitView\n fitViewOptions={{\n maxZoom: 1,\n }}\n minZoom={0.01}\n maxZoom={1}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n >\n <ZoomSlider position=\"bottom-left\" />\n <MiniMap pannable zoomable maskColor=\"#121212\" bgColor=\"#171717\" nodeColor=\"#2c2c2c\" />\n <Background variant={BackgroundVariant.Lines} gap={12} size={0.5} />\n </ReactFlow>\n ) : (\n <div className=\"w-full h-full flex items-center justify-center\">\n <Spinner />\n </div>\n )}\n </div>\n );\n}\n","import { Dialog, DialogContent, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { createContext, useState } from 'react';\nimport { ReactFlowProvider } from '@xyflow/react';\nimport { SerializedStepFlowEntry } from '@mastra/core/workflows';\nimport { Workflow } from 'lucide-react';\nimport { Text } from '@/components/ui/text';\nimport { WorkflowNestedGraph } from '../workflow/workflow-nested-graph';\nimport Spinner from '@/components/ui/spinner';\n\ntype WorkflowNestedGraphContextType = {\n showNestedGraph: ({\n label,\n stepGraph,\n fullStep,\n }: {\n label: string;\n stepGraph: SerializedStepFlowEntry[];\n fullStep: string;\n }) => void;\n closeNestedGraph: () => void;\n};\n\nexport const WorkflowNestedGraphContext = createContext<WorkflowNestedGraphContextType>(\n {} as WorkflowNestedGraphContextType,\n);\n\nexport function WorkflowNestedGraphProvider({ children }: { children: React.ReactNode }) {\n const [stepGraph, setStepGraph] = useState<SerializedStepFlowEntry[] | null>(null);\n const [parentStepGraphList, setParentStepGraphList] = useState<\n { stepGraph: SerializedStepFlowEntry[]; label: string; fullStep: string }[]\n >([]);\n const [openDialog, setOpenDialog] = useState<boolean>(false);\n const [label, setLabel] = useState<string>('');\n const [fullStep, setFullStep] = useState<string>('');\n const [switching, setSwitching] = useState(false);\n\n const closeNestedGraph = () => {\n if (parentStepGraphList.length) {\n setSwitching(true);\n const lastStepGraph = parentStepGraphList[parentStepGraphList.length - 1];\n setStepGraph(lastStepGraph.stepGraph);\n setLabel(lastStepGraph.label);\n setFullStep(lastStepGraph.fullStep);\n setParentStepGraphList(parentStepGraphList.slice(0, -1));\n setTimeout(() => {\n setSwitching(false);\n }, 500);\n } else {\n setOpenDialog(false);\n setStepGraph(null);\n setLabel('');\n setFullStep('');\n }\n };\n\n const showNestedGraph = ({\n label: newLabel,\n stepGraph: newStepGraph,\n fullStep: newFullStep,\n }: {\n label: string;\n stepGraph: SerializedStepFlowEntry[];\n fullStep: string;\n }) => {\n if (stepGraph) {\n setSwitching(true);\n setParentStepGraphList([...parentStepGraphList, { stepGraph, label, fullStep }]);\n }\n setLabel(newLabel);\n setFullStep(newFullStep);\n setStepGraph(newStepGraph);\n setOpenDialog(true);\n setTimeout(() => {\n setSwitching(false);\n }, 500);\n };\n\n return (\n <WorkflowNestedGraphContext.Provider\n value={{\n showNestedGraph,\n closeNestedGraph,\n }}\n >\n {children}\n\n <Dialog open={openDialog} onOpenChange={closeNestedGraph}>\n <DialogPortal>\n <DialogContent className=\"w-[45rem] h-[45rem] max-w-[unset] bg-[#121212] p-[0.5rem]\">\n <DialogTitle className=\"flex items-center gap-1.5 absolute top-2.5 left-2.5\">\n <Workflow className=\"text-current w-4 h-4\" />\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {label} workflow\n </Text>\n </DialogTitle>\n {switching ? (\n <div className=\"w-full h-full flex items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n <ReactFlowProvider>\n <WorkflowNestedGraph stepGraph={stepGraph!} open={openDialog} workflowName={fullStep} />\n </ReactFlowProvider>\n )}\n </DialogContent>\n </DialogPortal>\n </Dialog>\n </WorkflowNestedGraphContext.Provider>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { CircleDashed, Loader2, PauseIcon, Workflow } from 'lucide-react';\nimport { StepFlowEntry } from '@mastra/core/workflows';\n\nimport { Text } from '@/components/ui/text';\n\nimport { cn } from '@/lib/utils';\nimport { useContext, useState } from 'react';\nimport { WorkflowNestedGraphContext } from '../context/workflow-nested-graph-context';\nimport { useCurrentRun } from '../context/use-current-run';\nimport { CheckIcon, CrossIcon, Icon } from '@/ds/icons';\nimport { Txt } from '@/ds/components/Txt';\nimport { Clock } from './workflow-clock';\nimport { Button } from '@/ds/components/Button';\nimport { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog';\nimport { CodeDialogContent } from './workflow-code-dialog-content';\n\nexport type NestedNode = Node<\n {\n label: string;\n description?: string;\n withoutTopHandle?: boolean;\n withoutBottomHandle?: boolean;\n stepGraph: StepFlowEntry[];\n mapConfig?: string;\n },\n 'nested-node'\n>;\n\nexport function WorkflowNestedNode({\n data,\n parentWorkflowName,\n}: NodeProps<NestedNode> & { parentWorkflowName?: string }) {\n const [isInputOpen, setIsInputOpen] = useState(false);\n const [isOutputOpen, setIsOutputOpen] = useState(false);\n const [isErrorOpen, setIsErrorOpen] = useState(false);\n const [isMapConfigOpen, setIsMapConfigOpen] = useState(false);\n\n const { steps, isRunning } = useCurrentRun();\n const { showNestedGraph } = useContext(WorkflowNestedGraphContext);\n\n const { label, description, withoutTopHandle, withoutBottomHandle, stepGraph, mapConfig } = data;\n\n const fullLabel = parentWorkflowName ? `${parentWorkflowName}.${label}` : label;\n\n const step = steps[fullLabel];\n\n const dialogContentClass = 'bg-surface2 rounded-lg border-sm border-border1 max-w-4xl w-full px-0';\n const dialogTitleClass = 'border-b-sm border-border1 pb-4 px-6';\n\n return (\n <>\n {!withoutTopHandle && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n <div\n className={cn(\n 'bg-surface3 rounded-lg w-[274px] border-sm border-border1 pt-2',\n step?.status === 'success' && 'ring-2 ring-accent1',\n step?.status === 'failed' && 'ring-2 ring-accent2',\n )}\n >\n <div className={cn('flex items-center gap-2 px-3', !description && 'pb-2')}>\n {isRunning && (\n <Icon>\n {step?.status === 'failed' && <CrossIcon className=\"text-accent2\" />}\n {step?.status === 'success' && <CheckIcon className=\"text-accent1\" />}\n {step?.status === 'suspended' && <PauseIcon className=\"text-icon3\" />}\n {step?.status === 'running' && <Loader2 className=\"text-icon6 animate-spin\" />}\n {!step && <CircleDashed className=\"text-icon2\" />}\n </Icon>\n )}\n <Txt variant=\"ui-lg\" className=\"text-icon6 font-medium inline-flex items-center gap-1 justify-between w-full\">\n {label} {step?.startedAt && <Clock startedAt={step.startedAt} endedAt={step.endedAt} />}\n </Txt>\n </div>\n\n {description && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 px-3 pb-2\">\n {description}\n </Txt>\n )}\n\n <div className=\"flex flex-wrap items-center bg-surface4 border-t-sm border-border1 px-2 py-1 gap-2 rounded-b-lg\">\n <Button onClick={() => showNestedGraph({ label, fullStep: fullLabel, stepGraph })}>View workflow</Button>\n {mapConfig && (\n <>\n <Button onClick={() => setIsMapConfigOpen(true)}>Map config</Button>\n\n <Dialog open={isMapConfigOpen} onOpenChange={setIsMapConfigOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{label} map config</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={mapConfig} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n {step?.input && (\n <>\n <Button onClick={() => setIsInputOpen(true)}>Input</Button>\n\n <Dialog open={isInputOpen} onOpenChange={setIsInputOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{label} input</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={step.input} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n\n {step?.output && (\n <>\n <Button onClick={() => setIsOutputOpen(true)}>Output</Button>\n\n <Dialog open={isOutputOpen} onOpenChange={setIsOutputOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{label} output</DialogTitle>\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={step.output} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n\n {step?.error && (\n <>\n <Button onClick={() => setIsErrorOpen(true)}>Error</Button>\n\n <Dialog open={isErrorOpen} onOpenChange={setIsErrorOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{label} error</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={step?.error} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n </div>\n </div>\n {!withoutBottomHandle && <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />}\n </>\n );\n}\n","import {\n ReactFlow,\n MiniMap,\n Background,\n useNodesState,\n useEdgesState,\n BackgroundVariant,\n NodeProps,\n} from '@xyflow/react';\nimport '@xyflow/react/dist/style.css';\nimport { GetWorkflowResponse } from '@mastra/client-js';\n\nimport { constructNodesAndEdges } from './utils';\nimport { WorkflowConditionNode } from './workflow-condition-node';\nimport { DefaultNode, WorkflowDefaultNode } from './workflow-default-node';\nimport { WorkflowAfterNode } from './workflow-after-node';\nimport { WorkflowLoopResultNode } from './workflow-loop-result-node';\nimport { WorkflowNestedNode } from './workflow-nested-node';\nimport { ZoomSlider } from './zoom-slider';\n\nimport { useCurrentRun } from '../context/use-current-run';\n\nexport interface WorkflowGraphInnerProps {\n workflow: {\n stepGraph: GetWorkflowResponse['stepGraph'];\n };\n onShowTrace?: ({ runId, stepName }: { runId: string; stepName: string }) => void;\n}\n\nexport function WorkflowGraphInner({ workflow, onShowTrace }: WorkflowGraphInnerProps) {\n const { nodes: initialNodes, edges: initialEdges } = constructNodesAndEdges(workflow);\n const [nodes, _, onNodesChange] = useNodesState(initialNodes);\n const [edges] = useEdgesState(initialEdges);\n const { steps, runId } = useCurrentRun();\n\n const nodeTypes = {\n 'default-node': (props: NodeProps<DefaultNode>) => <WorkflowDefaultNode onShowTrace={onShowTrace} {...props} />,\n 'condition-node': WorkflowConditionNode,\n 'after-node': WorkflowAfterNode,\n 'loop-result-node': WorkflowLoopResultNode,\n 'nested-node': WorkflowNestedNode,\n };\n\n return (\n <div className=\"w-full h-full bg-surface1\">\n <ReactFlow\n nodes={nodes}\n edges={edges.map(e => ({\n ...e,\n style: {\n ...e.style,\n stroke:\n steps[e.data?.previousStepId as string]?.status === 'success' && steps[e.data?.nextStepId as string]\n ? '#22c55e'\n : undefined,\n },\n }))}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n fitView\n fitViewOptions={{\n maxZoom: 1,\n }}\n minZoom={0.01}\n maxZoom={1}\n >\n <ZoomSlider position=\"bottom-left\" />\n <MiniMap pannable zoomable maskColor=\"#121212\" bgColor=\"#171717\" nodeColor=\"#2c2c2c\" />\n <Background variant={BackgroundVariant.Dots} gap={12} size={0.5} />\n </ReactFlow>\n </div>\n );\n}\n","import { Skeleton } from '@/components/ui/skeleton';\n\nimport '../../../index.css';\n\nimport { lodashTitleCase } from '@/lib/string';\nimport { AlertCircleIcon } from 'lucide-react';\nimport { ReactFlowProvider } from '@xyflow/react';\nimport { WorkflowGraphInner } from './workflow-graph-inner';\nimport { WorkflowNestedGraphProvider } from '../context/workflow-nested-graph-context';\nimport { WorkflowRunContext } from '../context/workflow-run-context';\nimport { useContext } from 'react';\nimport { GetWorkflowResponse } from '@mastra/client-js';\n\nexport interface WorkflowGraphProps {\n workflowId: string;\n isLoading?: boolean;\n workflow?: GetWorkflowResponse;\n onShowTrace?: ({ runId, stepName }: { runId: string; stepName: string }) => void;\n}\n\nexport function WorkflowGraph({ workflowId, onShowTrace, workflow, isLoading }: WorkflowGraphProps) {\n const { snapshot } = useContext(WorkflowRunContext);\n\n if (isLoading) {\n return (\n <div className=\"p-4\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n }\n\n if (!workflow) {\n return (\n <div className=\"grid h-full place-items-center\">\n <div className=\"flex flex-col items-center gap-2\">\n <AlertCircleIcon />\n <div>We couldn't find {lodashTitleCase(workflowId)} workflow.</div>\n </div>\n </div>\n );\n }\n\n return (\n <WorkflowNestedGraphProvider key={snapshot?.runId ?? workflowId}>\n <ReactFlowProvider>\n <WorkflowGraphInner\n workflow={snapshot?.serializedStepGraph ? { stepGraph: snapshot?.serializedStepGraph } : workflow}\n onShowTrace={onShowTrace}\n />\n </ReactFlowProvider>\n </WorkflowNestedGraphProvider>\n );\n}\n","import { useMastraClient } from '@/contexts/mastra-client-context';\nimport { GetWorkflowRunsResponse } from '@mastra/client-js';\nimport { useEffect, useState } from 'react';\nimport { toast } from 'sonner';\n\nexport const useWorkflowRuns = (workflowId: string) => {\n const [runs, setRuns] = useState<GetWorkflowRunsResponse | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n\n const client = useMastraClient();\n\n useEffect(() => {\n const fetchWorkflow = async () => {\n setIsLoading(true);\n try {\n if (!workflowId) {\n setRuns(null);\n setIsLoading(false);\n return;\n }\n const res = await client.getWorkflow(workflowId).runs({ limit: 50 });\n setRuns(res);\n } catch (error) {\n setRuns(null);\n console.error('Error fetching workflow', error);\n toast.error('Error fetching workflow');\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchWorkflow();\n }, [workflowId]);\n\n return { runs, isLoading };\n};\n","import { useEffect, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { toast } from 'sonner';\nimport { LegacyWorkflowRunResult, WorkflowWatchResult, GetWorkflowResponse } from '@mastra/client-js';\nimport type { LegacyWorkflow } from '@mastra/core/workflows/legacy';\nimport { useMastraClient } from '@/contexts/mastra-client-context';\n\nexport type ExtendedLegacyWorkflowRunResult = LegacyWorkflowRunResult & {\n sanitizedOutput?: string | null;\n sanitizedError?: {\n message: string;\n stack?: string;\n } | null;\n};\n\nexport type ExtendedWorkflowWatchResult = WorkflowWatchResult & {\n sanitizedOutput?: string | null;\n sanitizedError?: {\n message: string;\n stack?: string;\n } | null;\n};\n\nexport const useWorkflow = (workflowId: string) => {\n const [workflow, setWorkflow] = useState<GetWorkflowResponse | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n\n const client = useMastraClient();\n\n useEffect(() => {\n const fetchWorkflow = async () => {\n setIsLoading(true);\n try {\n if (!workflowId) {\n setWorkflow(null);\n setIsLoading(false);\n return;\n }\n const res = await client.getWorkflow(workflowId).details();\n if (!res) {\n setWorkflow(null);\n console.error('Error fetching workflow');\n toast.error('Error fetching workflow');\n return;\n }\n setWorkflow(res);\n } catch (error) {\n setWorkflow(null);\n console.error('Error fetching workflow', error);\n toast.error('Error fetching workflow');\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchWorkflow();\n }, [workflowId]);\n\n return { workflow, isLoading };\n};\n\nexport const useLegacyWorkflow = (workflowId: string) => {\n const [legacyWorkflow, setLegacyWorkflow] = useState<LegacyWorkflow | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n\n const client = useMastraClient();\n\n useEffect(() => {\n const fetchWorkflow = async () => {\n setIsLoading(true);\n try {\n if (!workflowId) {\n setLegacyWorkflow(null);\n setIsLoading(false);\n return;\n }\n const res = await client.getLegacyWorkflow(workflowId).details();\n if (!res) {\n setLegacyWorkflow(null);\n console.error('Error fetching legacy workflow');\n toast.error('Error fetching legacy workflow');\n return;\n }\n const steps = res.steps;\n const stepsWithWorkflow = await Promise.all(\n Object.values(steps)?.map(async step => {\n if (!step.workflowId) return step;\n\n const wFlow = await client.getLegacyWorkflow(step.workflowId).details();\n\n if (!wFlow) return step;\n\n return { ...step, stepGraph: wFlow.stepGraph, stepSubscriberGraph: wFlow.stepSubscriberGraph };\n }),\n );\n const _steps = stepsWithWorkflow.reduce((acc, b) => {\n return { ...acc, [b.id]: b };\n }, {});\n setLegacyWorkflow({ ...res, steps: _steps } as LegacyWorkflow);\n } catch (error) {\n setLegacyWorkflow(null);\n console.error('Error fetching legacy workflow', error);\n toast.error('Error fetching legacy workflow');\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchWorkflow();\n }, [workflowId]);\n\n return { legacyWorkflow, isLoading };\n};\n\nexport const useExecuteWorkflow = () => {\n const client = useMastraClient();\n\n const createLegacyWorkflowRun = async ({ workflowId, prevRunId }: { workflowId: string; prevRunId?: string }) => {\n try {\n const workflow = client.getLegacyWorkflow(workflowId);\n const { runId: newRunId } = await workflow.createRun({ runId: prevRunId });\n return { runId: newRunId };\n } catch (error) {\n console.error('Error creating workflow run:', error);\n throw error;\n }\n };\n\n const startLegacyWorkflowRun = async ({\n workflowId,\n runId,\n input,\n }: {\n workflowId: string;\n runId: string;\n input: any;\n }) => {\n try {\n const workflow = client.getLegacyWorkflow(workflowId);\n await workflow.start({ runId, triggerData: input || {} });\n } catch (error) {\n console.error('Error starting workflow run:', error);\n throw error;\n }\n };\n\n return {\n startLegacyWorkflowRun,\n createLegacyWorkflowRun,\n };\n};\n\nexport const useWatchWorkflow = () => {\n const [isWatchingLegacyWorkflow, setIsWatchingLegacyWorkflow] = useState(false);\n const [legacyWatchResult, setLegacyWatchResult] = useState<ExtendedLegacyWorkflowRunResult | null>(null);\n const client = useMastraClient();\n\n // Debounce the state update to prevent too frequent renders\n const debouncedSetLegacyWorkflowWatchResult = useDebouncedCallback((record: ExtendedLegacyWorkflowRunResult) => {\n // Sanitize and limit the size of large data fields\n const formattedResults = Object.entries(record.results || {}).reduce(\n (acc, [key, value]) => {\n let output = value.status === 'success' ? value.output : undefined;\n if (output) {\n output = Object.entries(output).reduce(\n (_acc, [_key, _value]) => {\n const val = _value as { type: string; data: unknown };\n _acc[_key] = val.type?.toLowerCase() === 'buffer' ? { type: 'Buffer', data: `[...buffered data]` } : val;\n return _acc;\n },\n {} as Record<string, any>,\n );\n }\n acc[key] = { ...value, output };\n return acc;\n },\n {} as Record<string, any>,\n );\n const sanitizedRecord: ExtendedLegacyWorkflowRunResult = {\n ...record,\n sanitizedOutput: record\n ? JSON.stringify({ ...record, results: formattedResults }, null, 2).slice(0, 50000) // Limit to 50KB\n : null,\n };\n setLegacyWatchResult(sanitizedRecord);\n }, 100);\n\n const watchLegacyWorkflow = async ({ workflowId, runId }: { workflowId: string; runId: string }) => {\n try {\n setIsWatchingLegacyWorkflow(true);\n\n const workflow = client.getLegacyWorkflow(workflowId);\n\n await workflow.watch({ runId }, record => {\n try {\n debouncedSetLegacyWorkflowWatchResult(record);\n } catch (err) {\n console.error('Error processing workflow record:', err);\n // Set a minimal error state if processing fails\n setLegacyWatchResult({\n ...record,\n });\n }\n });\n } catch (error) {\n console.error('Error watching workflow:', error);\n\n throw error;\n } finally {\n setIsWatchingLegacyWorkflow(false);\n }\n };\n\n return {\n watchLegacyWorkflow,\n isWatchingLegacyWorkflow,\n legacyWatchResult,\n };\n};\n\nexport const useResumeWorkflow = () => {\n const [isResumingLegacyWorkflow, setIsResumingLegacyWorkflow] = useState(false);\n\n const client = useMastraClient();\n\n const resumeLegacyWorkflow = async ({\n workflowId,\n stepId,\n runId,\n context,\n }: {\n workflowId: string;\n stepId: string;\n runId: string;\n context: any;\n }) => {\n try {\n setIsResumingLegacyWorkflow(true);\n\n const response = await client.getLegacyWorkflow(workflowId).resume({ stepId, runId, context });\n\n return response;\n } catch (error) {\n console.error('Error resuming workflow:', error);\n throw error;\n } finally {\n setIsResumingLegacyWorkflow(false);\n }\n };\n\n return {\n resumeLegacyWorkflow,\n isResumingLegacyWorkflow,\n };\n};\n","import { useState } from 'react';\nimport { useVNextNetworkChat } from '@/services/vnext-network-chat-provider';\nimport { Button } from '@/ds/components/Button';\nimport Spinner from '@/components/ui/spinner';\nimport { CheckIcon, CrossIcon, Icon } from '@/ds/icons';\nimport { Txt } from '@/ds/components/Txt';\nimport { Clock } from '@/domains/workflows/workflow/workflow-clock';\nimport { Badge } from '@/ds/components/Badge';\nimport { ChevronDown } from 'lucide-react';\nimport clsx from 'clsx';\nimport { WorkflowGraph } from '@/domains/workflows/workflow/workflow-graph';\nimport { Dialog, DialogContent, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { WorkflowRunProvider } from '@/domains/workflows/context/workflow-run-context';\nimport { useWorkflowRuns } from '@/hooks/use-workflow-runs';\nimport { useWorkflow } from '@/hooks/use-workflows';\nimport { useMessage } from '@assistant-ui/react';\n\nconst LabelMappings = {\n 'routing-step': 'Decision making process',\n 'agent-step': 'Agent execution',\n 'workflow-step': 'Workflow execution',\n 'final-step': 'Task completed',\n};\n\nexport const StepDropdown = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const { state } = useVNextNetworkChat();\n const message = useMessage();\n\n const id = message?.metadata?.custom?.id as string | undefined;\n\n if (!id) return <div>Something is wrong</div>;\n const currentState = state[id];\n\n const latestStepId = currentState.executionSteps[currentState.executionSteps.length - 1];\n const hasFinished = latestStepId === 'finish';\n\n return (\n <div className=\"space-y-2\">\n <Button onClick={() => setIsExpanded(!isExpanded)}>\n {hasFinished ? (\n <>\n <Icon>\n <CheckIcon className=\"text-accent1\" />\n </Icon>\n Done\n </>\n ) : (\n <>\n <Icon>\n <Spinner className=\"animate-spin\" />\n </Icon>\n Thinking...\n </>\n )}\n\n <Icon className=\"ml-2\">\n <ChevronDown className={clsx('transition-transform -rotate-90', isExpanded && 'rotate-0')} />\n </Icon>\n </Button>\n\n {isExpanded ? <Steps id={id} /> : null}\n </div>\n );\n};\n\nconst Steps = ({ id }: { id: string }) => {\n const { state } = useVNextNetworkChat();\n const currentState = state[id];\n\n return (\n <ol className=\"flex flex-col gap-px rounded-lg overflow-hidden\">\n {currentState.executionSteps\n .filter(stepId => stepId !== 'start')\n .map((stepId: any, index: number) => (\n <StepEntry key={index} stepId={stepId} step={currentState.steps[stepId] || {}} runId={currentState.runId} />\n ))}\n </ol>\n );\n};\n\nconst StepEntry = ({ stepId, step, runId }: { stepId: any; step: any; runId?: string }) => {\n const [expanded, setExpanded] = useState(false);\n const stepResult = step['step-result'];\n\n if (stepId === 'finish') {\n return (\n <div className=\"bg-surface4 py-2 px-3 text-icon6 flex items-center gap-4 justify-between\">\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n Process completed\n </Txt>\n </div>\n );\n }\n\n return (\n <li>\n <button\n className=\"bg-surface4 py-2 px-3 text-icon6 flex items-center gap-4 justify-between w-full text-left\"\n onClick={() => setExpanded(s => !s)}\n >\n <div className=\"flex items-center gap-2\">\n <StatusIcon status={stepResult ? stepResult?.status : 'loading'} />\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {LabelMappings[stepId as keyof typeof LabelMappings] || stepId}\n </Txt>\n </div>\n\n {step.metadata?.startTime && <StepClock step={step} />}\n </button>\n\n {stepId === 'routing-step' && expanded && (\n <div className=\"bg-surface1 p-3 space-y-4\">\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Selection reason:\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepResult?.output?.selectionReason || 'N/A'}\n </Txt>\n </div>\n\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Resource ID\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepResult?.output?.resourceId || 'N/A'}\n </Txt>\n </div>\n </div>\n )}\n\n {stepId === 'final-step' && expanded && (\n <div className=\"bg-surface1 p-3 space-y-4\">\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Task:\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepResult?.output?.task || 'N/A'}\n </Txt>\n </div>\n\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Number of iterations:\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepResult?.output?.iteration || 'N/A'}\n </Txt>\n </div>\n </div>\n )}\n\n {stepId === 'workflow-step' && stepResult?.output?.resourceId ? (\n <WorkflowStepResultDialog\n open={expanded}\n onOpenChange={setExpanded}\n workflowId={stepResult?.output?.resourceId}\n runId={runId}\n />\n ) : null}\n </li>\n );\n};\n\ninterface WorkflowStepResultDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n workflowId: string;\n runId?: string;\n}\n\nconst WorkflowStepResultDialog = ({ open, onOpenChange, workflowId, runId }: WorkflowStepResultDialogProps) => {\n const { runs } = useWorkflowRuns(workflowId);\n const { workflow, isLoading } = useWorkflow(workflowId);\n const run = runs?.runs.find((run: any) => run.runId === runId);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogPortal>\n <DialogContent className=\"h-[90vh] w-[90%] max-w-[unset]\">\n <div className=\"flex-1 h-full\">\n <DialogTitle>Workflow details</DialogTitle>\n <WorkflowRunProvider snapshot={typeof run?.snapshot === 'object' ? run.snapshot : undefined}>\n <WorkflowGraph workflowId={workflowId} workflow={workflow!} isLoading={isLoading} />\n </WorkflowRunProvider>\n </div>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n );\n};\n\nconst StatusIcon = ({ status }: { status: 'error' | 'success' | 'loading' }) => {\n if (status === 'error') {\n return (\n <Icon>\n <CrossIcon className=\"text-accent2\" />\n </Icon>\n );\n }\n\n if (status === 'success') {\n return (\n <Icon>\n <CheckIcon className=\"text-accent1\" />\n </Icon>\n );\n }\n\n return (\n <Icon>\n <Spinner className=\"animate-spin\" />\n </Icon>\n );\n};\n\nconst StepClock = ({ step }: { step: any }) => {\n return (\n <Badge>\n <Clock startedAt={step.metadata.startTime} endedAt={step.metadata?.endTime} />\n </Badge>\n );\n};\n","import {\n ActionBarPrimitive,\n MessagePrimitive,\n TextContentPart,\n ToolCallContentPartComponent,\n useMessage,\n} from '@assistant-ui/react';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { FC } from 'react';\n\nimport { ToolFallback } from '@/components/assistant-ui/tool-fallback';\nimport { MarkdownText } from '@/components/assistant-ui/markdown-text';\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { StepDropdown } from './step-dropdown';\n\nexport const NextAssistantMessage: FC<{ ToolFallback?: ToolCallContentPartComponent }> = ({\n ToolFallback: ToolFallbackCustom,\n}) => {\n const data = useMessage();\n const isSolelyToolCall = data.content.length === 1 && data.content[0].type === 'tool-call';\n\n const content = data.content[0];\n\n if (!content) {\n return null;\n }\n\n const textContent = (content as TextContentPart).text;\n\n if (textContent === 'start') {\n return <StepDropdown />;\n }\n\n return (\n <MessagePrimitive.Root className=\"max-w-full\">\n <div className=\"text-icon6 text-ui-lg leading-ui-lg\">\n <MessagePrimitive.Content\n components={{\n Text: MarkdownText,\n tools: { Fallback: ToolFallbackCustom || ToolFallback },\n }}\n />\n </div>\n\n <div className=\"h-6 pt-1\">{!isSolelyToolCall && <AssistantActionBar />}</div>\n </MessagePrimitive.Root>\n );\n};\n\nconst AssistantActionBar: FC = () => {\n return (\n <ActionBarPrimitive.Root\n hideWhenRunning\n autohide=\"always\"\n autohideFloat=\"single-branch\"\n className=\"flex gap-1 items-center transition-all\"\n >\n <ActionBarPrimitive.Copy asChild>\n <TooltipIconButton tooltip=\"Copy\" className=\"bg-transparent text-icon3 hover:text-icon6\">\n <MessagePrimitive.If copied>\n <CheckIcon />\n </MessagePrimitive.If>\n <MessagePrimitive.If copied={false}>\n <CopyIcon />\n </MessagePrimitive.If>\n </TooltipIconButton>\n </ActionBarPrimitive.Copy>\n </ActionBarPrimitive.Root>\n );\n};\n","import {\n ComposerPrimitive,\n MessagePrimitive,\n ThreadPrimitive,\n ToolCallContentPartComponent,\n useComposerRuntime,\n} from '@assistant-ui/react';\nimport { ArrowUp, Mic, PlusIcon } from 'lucide-react';\nimport type { FC } from 'react';\n\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar';\nimport { Button } from '@/components/ui/button';\n\nimport { UserMessage } from './user-message';\nimport { useEffect, useRef } from 'react';\nimport { useAutoscroll } from '@/hooks/use-autoscroll';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon, InfoIcon } from '@/ds/icons';\nimport { useSpeechRecognition } from '@/hooks/use-speech-recognition';\nimport { ComposerAttachments } from './attachment';\nimport { useHasAttachments } from './use-has-attachments';\nimport { NextAssistantMessage } from '@/domains/networks/v-next/wrapped-assistant-message';\nimport clsx from 'clsx';\n\nexport interface ThreadProps {\n ToolFallback?: ToolCallContentPartComponent;\n networkName?: string;\n hasMemory?: boolean;\n showFileSupport?: boolean;\n}\n\nexport const NetworkThread = ({ ToolFallback, networkName, hasMemory, showFileSupport }: ThreadProps) => {\n const areaRef = useRef<HTMLDivElement>(null);\n useAutoscroll(areaRef, { enabled: true });\n\n const WrappedAssistantMessage = (props: MessagePrimitive.Root.Props) => {\n return <NextAssistantMessage {...props} ToolFallback={ToolFallback} />;\n };\n\n return (\n <ThreadWrapper>\n <ThreadPrimitive.Viewport className=\"py-10 overflow-y-auto scroll-smooth h-full\" ref={areaRef} autoScroll={false}>\n <div>\n <ThreadWelcome networkName={networkName} />\n <ThreadPrimitive.Messages\n components={{\n UserMessage: UserMessage,\n EditComposer: EditComposer,\n AssistantMessage: WrappedAssistantMessage,\n }}\n />\n </div>\n\n <ThreadPrimitive.If empty={false}>\n <div />\n </ThreadPrimitive.If>\n </ThreadPrimitive.Viewport>\n\n <Composer hasMemory={hasMemory} showFileSupport={showFileSupport} />\n </ThreadWrapper>\n );\n};\n\nconst ThreadWrapper = ({ children }: { children: React.ReactNode }) => {\n const hasAttachments = useHasAttachments();\n\n return (\n <ThreadPrimitive.Root\n className={clsx(\n 'max-w-[568px] w-full mx-auto px-4',\n hasAttachments ? 'h-[calc(100%-208px)]' : 'h-[calc(100%-112px)]',\n )}\n >\n {children}\n </ThreadPrimitive.Root>\n );\n};\n\nexport interface ThreadWelcomeProps {\n networkName?: string;\n}\n\nconst ThreadWelcome = ({ networkName }: ThreadWelcomeProps) => {\n const safeNetworkName = networkName ?? '';\n const words = safeNetworkName.split(' ') ?? [];\n\n let initials = 'A';\n\n if (words.length === 2) {\n initials = `${words[0][0]}${words[1][0]}`;\n } else if (safeNetworkName.length > 0) {\n initials = `${safeNetworkName[0]}`;\n } else {\n initials = 'A';\n }\n\n return (\n <ThreadPrimitive.Empty>\n <div className=\"flex w-full flex-grow flex-col items-center justify-center\">\n <Avatar>\n <AvatarFallback>{initials}</AvatarFallback>\n </Avatar>\n <p className=\"mt-4 font-medium\">How can I help you today?</p>\n </div>\n </ThreadPrimitive.Empty>\n );\n};\n\nconst Composer: FC<{ hasMemory?: boolean; showFileSupport?: boolean }> = ({ hasMemory, showFileSupport }) => {\n return (\n <div>\n <ComposerPrimitive.Root>\n <ComposerAttachments />\n\n <div className=\"w-full bg-surface3 rounded-lg border-sm border-border1 px-3 py-4 mt-auto h-[100px]\">\n <ComposerPrimitive.Input asChild className=\"w-full\">\n <textarea\n className=\"text-ui-lg leading-ui-lg placeholder:text-icon3 text-icon6 bg-transparent focus:outline-none resize-none\"\n autoFocus\n placeholder=\"Enter your message...\"\n name=\"\"\n id=\"\"\n ></textarea>\n </ComposerPrimitive.Input>\n <div className=\"flex justify-end gap-2\">\n <SpeechInput />\n <ComposerAction showFileSupport={showFileSupport} />\n </div>\n </div>\n </ComposerPrimitive.Root>\n\n {!hasMemory && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 flex items-center gap-2 pt-0.5\">\n <Icon>\n <InfoIcon />\n </Icon>\n Memory is not enabled. The conversation will not be persisted.\n </Txt>\n )}\n </div>\n );\n};\n\nconst SpeechInput = () => {\n const composerRuntime = useComposerRuntime();\n const { start, stop, isListening, transcript } = useSpeechRecognition();\n\n useEffect(() => {\n if (!transcript) return;\n\n composerRuntime.setText(transcript);\n }, [composerRuntime, transcript]);\n\n return (\n <TooltipIconButton\n type=\"button\"\n tooltip={isListening ? 'Stop dictation' : 'Start dictation'}\n variant=\"ghost\"\n className=\"rounded-full\"\n onClick={() => (isListening ? stop() : start())}\n >\n {isListening ? <CircleStopIcon /> : <Mic className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />}\n </TooltipIconButton>\n );\n};\n\nconst ComposerAction: FC<{ showFileSupport?: boolean }> = ({ showFileSupport }) => {\n return (\n <>\n {showFileSupport && (\n <ComposerPrimitive.AddAttachment asChild>\n <TooltipIconButton tooltip=\"Add attachment\" variant=\"ghost\" className=\"rounded-full\">\n <PlusIcon className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />\n </TooltipIconButton>\n </ComposerPrimitive.AddAttachment>\n )}\n\n <ThreadPrimitive.If running={false}>\n <ComposerPrimitive.Send asChild>\n <TooltipIconButton\n tooltip=\"Send\"\n variant=\"default\"\n className=\"rounded-full border-sm border-[#363636] bg-[#292929]\"\n >\n <ArrowUp className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />\n </TooltipIconButton>\n </ComposerPrimitive.Send>\n </ThreadPrimitive.If>\n <ThreadPrimitive.If running>\n <ComposerPrimitive.Cancel asChild>\n <TooltipIconButton tooltip=\"Cancel\" variant=\"default\">\n <CircleStopIcon />\n </TooltipIconButton>\n </ComposerPrimitive.Cancel>\n </ThreadPrimitive.If>\n </>\n );\n};\n\nconst EditComposer: FC = () => {\n return (\n <ComposerPrimitive.Root>\n <ComposerPrimitive.Input />\n\n <div>\n <ComposerPrimitive.Cancel asChild>\n <Button variant=\"ghost\">Cancel</Button>\n </ComposerPrimitive.Cancel>\n <ComposerPrimitive.Send asChild>\n <Button>Send</Button>\n </ComposerPrimitive.Send>\n </div>\n </ComposerPrimitive.Root>\n );\n};\n\nconst CircleStopIcon = () => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" width=\"16\" height=\"16\">\n <rect width=\"10\" height=\"10\" x=\"3\" y=\"3\" rx=\"2\" />\n </svg>\n );\n};\n","import React from 'react';\nimport { TextContentPart, ThreadMessageLike } from '@assistant-ui/react';\nimport { createContext, ReactNode, useContext, useState } from 'react';\n\nconst MessagesContext = createContext<{\n messages: ThreadMessageLike[];\n setMessages: React.Dispatch<React.SetStateAction<ThreadMessageLike[]>>;\n appendToLastMessage: (partial: string) => void;\n}>({\n messages: [],\n setMessages: () => {},\n appendToLastMessage: () => {},\n});\n\nexport const MessagesProvider = ({ children }: { children: ReactNode }) => {\n const [messages, setMessages] = useState<ThreadMessageLike[]>([]);\n\n const appendToLastMessage = (partial: string) =>\n setMessages(msgs => {\n const lastMsg = msgs[msgs.length - 1];\n\n const content =\n typeof lastMsg.content === 'string' ? lastMsg.content : (lastMsg.content?.[0] as TextContentPart).text;\n\n return [\n ...msgs.slice(0, -1),\n {\n ...lastMsg,\n content: [{ type: 'text', text: content + partial }],\n },\n ];\n });\n\n return (\n <MessagesContext.Provider value={{ messages, setMessages, appendToLastMessage }}>\n {children}\n </MessagesContext.Provider>\n );\n};\n\nexport const useMessages = () => useContext(MessagesContext);\n","import prettier from 'prettier';\nimport prettierPluginBabel from 'prettier/plugins/babel';\nimport prettierPluginEstree from 'prettier/plugins/estree';\n\nexport const formatJSON = async (code: string) => {\n const formatted = await prettier.format(code, {\n semi: false,\n parser: 'json',\n printWidth: 80,\n tabWidth: 2,\n plugins: [prettierPluginBabel, prettierPluginEstree],\n });\n\n return formatted;\n};\n","'use client';\nimport { v4 as uuid } from '@lukeed/uuid';\n\nimport {\n useExternalStoreRuntime,\n ThreadMessageLike,\n AppendMessage,\n AssistantRuntimeProvider,\n} from '@assistant-ui/react';\nimport { useState, ReactNode, useEffect, useRef, useContext } from 'react';\n\nimport { ChatProps } from '@/types';\nimport { useMastraClient } from '@/contexts/mastra-client-context';\nimport { useVNextNetworkChat } from '@/services/vnext-network-chat-provider';\nimport { useMessages } from './vnext-message-provider';\nimport { formatJSON } from '@/lib/formatting';\nimport { NetworkContext } from '@/domains/networks';\n\nconst convertMessage = (message: ThreadMessageLike): ThreadMessageLike => {\n return message;\n};\n\ntype VNextMastraNetworkRuntimeProviderProps = Omit<ChatProps, 'agentId' | 'agentName' | 'modelSettings'> & {\n networkId: string;\n};\n\nexport function VNextMastraNetworkRuntimeProvider({\n children,\n networkId,\n memory,\n threadId,\n refreshThreadList,\n initialMessages,\n}: Readonly<{\n children: ReactNode;\n}> &\n VNextMastraNetworkRuntimeProviderProps) {\n const runIdRef = useRef<string | undefined>(undefined);\n const [isRunning, setIsRunning] = useState(false);\n const { messages, setMessages, appendToLastMessage } = useMessages();\n const [currentThreadId, setCurrentThreadId] = useState<string | undefined>(threadId);\n\n const { handleStep, state, setState } = useVNextNetworkChat();\n const { chatWithLoop, maxIterations } = useContext(NetworkContext);\n const id = runIdRef.current;\n const currentState = id ? state[id] : undefined;\n\n useEffect(() => {\n if (!currentState) return;\n const hasFinished = Boolean(currentState?.steps?.['finish']);\n if (!hasFinished) return;\n\n const workflowStep = currentState?.steps?.['workflow-step'];\n if (!workflowStep) return;\n\n const workflowStepResult = workflowStep?.['step-result'];\n if (!workflowStepResult) return;\n\n const workflowStepResultOutput = workflowStepResult?.output;\n if (!workflowStepResultOutput) return;\n\n const run = async () => {\n const parsedResult = JSON.parse(workflowStepResult?.output?.result ?? '{}') ?? {};\n const runResult = parsedResult?.runResult ?? {};\n const formatted = await formatJSON(JSON.stringify(runResult));\n\n setMessages(msgs => [\n ...msgs,\n { role: 'assistant', content: [{ type: 'text', text: `\\`\\`\\`json\\n${formatted}\\`\\`\\`` }] },\n ]);\n };\n\n run();\n }, [currentState]);\n\n useEffect(() => {\n const hasNewInitialMessages = initialMessages && initialMessages?.length > messages?.length;\n if (\n messages.length === 0 ||\n currentThreadId !== threadId ||\n (hasNewInitialMessages && currentThreadId === threadId)\n ) {\n const run = async (result: string, messageId: string) => {\n const formatted = await formatJSON(result);\n\n const finalResponse = `\\`\\`\\`json\\n${formatted}\\`\\`\\``;\n\n setMessages(currentConversation => {\n return currentConversation.map(message => {\n if (message.metadata?.custom?.id === messageId) {\n return { ...message, content: [{ type: 'text', text: finalResponse }] };\n }\n return message;\n });\n });\n };\n\n if (initialMessages && threadId && memory) {\n for (const message of initialMessages) {\n if (message.role === 'user') {\n setMessages(currentConversation => [...currentConversation, message]);\n }\n if (message.role === 'assistant') {\n const id = uuid();\n const formattedMessageId = uuid();\n const parts = message.parts;\n const routingStep = parts?.[2];\n const responseStep = parts?.[3];\n const routingDecision = JSON.parse(routingStep?.text ?? '{}');\n\n const resourceStepId = routingDecision?.resourceType === 'agent' ? 'agent-step' : 'workflow-step';\n\n let finalResponse = responseStep?.text ?? '';\n let runId = '';\n\n let runResult = {};\n\n if (resourceStepId === 'workflow-step') {\n const parsedResult = JSON.parse(responseStep?.text ?? '{}') ?? {};\n runResult = parsedResult?.runResult ?? {};\n runId = parsedResult?.runId ?? '';\n }\n\n setState(currentState => {\n return {\n ...currentState,\n [id]: {\n executionSteps: ['start', 'routing-step', resourceStepId, 'finish'],\n runId,\n steps: {\n start: {},\n 'routing-step': {\n 'step-result': {\n output: routingDecision,\n status: 'success',\n },\n },\n [resourceStepId]: {\n 'step-result': {\n output: {\n resourceId: routingDecision?.resourceId,\n },\n status: 'success',\n },\n },\n finish: {},\n },\n },\n };\n });\n\n setMessages(currentConversation => {\n return [\n ...currentConversation,\n {\n role: 'assistant',\n metadata: {\n custom: {\n id,\n },\n },\n content: [\n {\n type: 'text',\n text: 'start',\n },\n ],\n },\n {\n role: 'assistant',\n content: [{ type: 'text', text: resourceStepId === 'workflow-step' ? '' : finalResponse }],\n metadata: {\n custom: {\n id: formattedMessageId,\n },\n },\n },\n ];\n });\n\n if (resourceStepId === 'workflow-step') {\n run(JSON.stringify(runResult), formattedMessageId);\n }\n }\n }\n setCurrentThreadId(threadId);\n }\n }\n }, [initialMessages, threadId, memory, messages]);\n\n const mastra = useMastraClient();\n\n const network = mastra.getVNextNetwork(networkId);\n\n const onNew = async (message: AppendMessage) => {\n runIdRef.current = undefined;\n\n if (message.content[0]?.type !== 'text') throw new Error('Only text messages are supported');\n\n const input = message.content[0].text;\n setMessages(currentConversation => [...currentConversation, { role: 'user', content: input }]);\n setIsRunning(true);\n\n try {\n if (chatWithLoop) {\n const run = async (result: string, messageId: string) => {\n const formatted = await formatJSON(result);\n\n const finalResponse = `\\`\\`\\`json\\n${formatted}\\`\\`\\``;\n\n setMessages(currentConversation => {\n return currentConversation.map(message => {\n if (message.metadata?.custom?.id === messageId) {\n return { ...message, content: [{ type: 'text', text: finalResponse }] };\n }\n return message;\n });\n });\n };\n\n let isAgentNetworkOuterWorkflowCompleted = false;\n\n await network.loopStream(\n {\n message: input,\n threadId,\n resourceId: networkId,\n maxIterations,\n },\n async (record: any) => {\n if (\n (record as any).type === 'step-start' &&\n (record as any).payload?.id === 'Agent-Network-Outer-Workflow'\n ) {\n const id = uuid();\n runIdRef.current = id;\n\n setMessages(currentConversation => {\n return [\n ...currentConversation,\n {\n role: 'assistant',\n metadata: {\n custom: {\n id,\n },\n },\n content: [\n {\n type: 'text',\n text: 'start',\n },\n ],\n },\n ];\n });\n } else if (runIdRef.current) {\n if ((record as any).type === 'tool-call-delta') {\n appendToLastMessage((record as any).argsTextDelta);\n } else if ((record as any).type === 'tool-call-streaming-start') {\n setMessages(msgs => [...msgs, { role: 'assistant', content: [{ type: 'text', text: '' }] }]);\n setTimeout(() => {\n refreshThreadList?.();\n }, 500);\n return;\n } else {\n if (\n (record as any).type === 'step-finish' &&\n (record as any).payload?.id === 'Agent-Network-Outer-Workflow'\n ) {\n if (!isAgentNetworkOuterWorkflowCompleted) {\n handleStep(runIdRef.current, { ...record, type: 'finish' });\n runIdRef.current = undefined;\n }\n } else if ((record as any).type === 'step-result' && (record as any).payload?.id === 'workflow-step') {\n handleStep(runIdRef.current, record);\n const parsedResult = JSON.parse(record?.payload?.output?.result ?? '{}') ?? {};\n const runResult = parsedResult?.runResult ?? {};\n const formatedOutputId = uuid();\n\n setMessages(msgs => [\n ...msgs,\n {\n role: 'assistant',\n content: [\n {\n type: 'text',\n text: '',\n },\n ],\n metadata: {\n custom: {\n id: formatedOutputId,\n },\n },\n },\n ]);\n\n run(JSON.stringify(runResult), formatedOutputId);\n } else if (\n record.payload?.id === 'Agent-Network-Outer-Workflow' ||\n record.payload?.id === 'finish-step'\n ) {\n if (record.type === 'step-result' && record.payload?.id === 'Agent-Network-Outer-Workflow') {\n isAgentNetworkOuterWorkflowCompleted = record?.payload?.output?.isComplete;\n }\n } else {\n handleStep(runIdRef.current, record);\n }\n }\n }\n\n if (record.type === 'step-result' && record.payload?.id === 'final-step') {\n setMessages(msgs => [\n ...msgs,\n { role: 'assistant', content: [{ type: 'text', text: record.payload?.output?.result }] },\n ]);\n }\n\n if (record.type === 'step-finish' && record.payload?.id === 'final-step') {\n runIdRef.current = undefined;\n }\n\n setTimeout(() => {\n refreshThreadList?.();\n }, 500);\n },\n );\n } else {\n await network.stream(\n {\n message: input,\n threadId,\n resourceId: networkId,\n },\n (record: any) => {\n if (runIdRef.current) {\n if ((record as any).type === 'tool-call-delta') {\n appendToLastMessage((record as any).argsTextDelta);\n } else if ((record as any).type === 'tool-call-streaming-start') {\n setMessages(msgs => [...msgs, { role: 'assistant', content: [{ type: 'text', text: '' }] }]);\n setTimeout(() => {\n refreshThreadList?.();\n }, 500);\n return;\n } else {\n handleStep(runIdRef.current, record);\n }\n } else if ((record as any).type === 'start') {\n const id = uuid();\n runIdRef.current = id;\n\n setMessages(currentConversation => {\n return [\n ...currentConversation,\n {\n role: 'assistant',\n metadata: {\n custom: {\n id,\n },\n },\n content: [\n {\n type: 'text',\n text: 'start',\n },\n ],\n },\n ];\n });\n }\n\n setTimeout(() => {\n refreshThreadList?.();\n }, 500);\n },\n );\n }\n\n setIsRunning(false);\n } catch (error) {\n console.error('Error occurred in VNextMastraNetworkRuntimeProvider', error);\n setIsRunning(false);\n }\n };\n\n const runtime = useExternalStoreRuntime<ThreadMessageLike>({\n isRunning,\n messages,\n convertMessage,\n onNew,\n });\n\n return <AssistantRuntimeProvider runtime={runtime}> {children} </AssistantRuntimeProvider>;\n}\n","import { NetworkThread } from '@/components/assistant-ui/network-threads';\nimport { Message } from '@/types';\nimport { VNextMastraNetworkRuntimeProvider } from '@/services/vnext-network-runtime-provider';\nimport { VNextNetworkChatProvider } from '@/services/vnext-network-chat-provider';\nimport { MessagesProvider } from '@/services/vnext-message-provider';\n\nexport const VNextNetworkChat = ({\n networkId,\n networkName,\n threadId,\n initialMessages,\n memory,\n refreshThreadList,\n}: {\n networkId: string;\n networkName: string;\n threadId: string;\n initialMessages?: Message[];\n memory?: boolean;\n refreshThreadList?: () => void;\n}) => {\n return (\n <MessagesProvider key={threadId}>\n <VNextNetworkChatProvider key={threadId}>\n <VNextMastraNetworkRuntimeProvider\n key={threadId}\n networkId={networkId}\n initialMessages={initialMessages ?? []}\n threadId={threadId}\n memory={memory}\n refreshThreadList={refreshThreadList}\n >\n <div className=\"h-full pb-4\">\n <NetworkThread hasMemory={memory} networkName={networkName} />\n </div>\n </VNextMastraNetworkRuntimeProvider>\n </VNextNetworkChatProvider>\n </MessagesProvider>\n );\n};\n","import { useContext, useEffect, useRef, useState } from 'react';\n\nimport { TraceContext, TraceProvider } from '@/domains/traces/context/trace-context';\n\nimport { TracesTable } from '@/domains/traces/traces-table';\nimport { TracesSidebar } from '@/domains/traces/traces-sidebar';\nimport { RefinedTrace } from '@/domains/traces/types';\n\nexport interface WorkflowTracesProps {\n traces: RefinedTrace[];\n error: { message: string } | null;\n runId?: string;\n stepName?: string;\n}\n\nexport function WorkflowTraces({ traces, error, runId, stepName }: WorkflowTracesProps) {\n return (\n <TraceProvider initialTraces={traces || []}>\n <WorkflowTracesInner traces={traces} error={error} runId={runId} stepName={stepName} />\n </TraceProvider>\n );\n}\n\nfunction WorkflowTracesInner({ traces, error, runId, stepName }: WorkflowTracesProps) {\n // This is a hack. To fix, The provider should not resolve the data like this.\n // We should resolve the data first and pass them to the provider instead of having the proving setState on the result.\n const hasRunRef = useRef(false);\n const [sidebarWidth, setSidebarWidth] = useState(100);\n const { isOpen: open, setTrace, setIsOpen, setSpan } = useContext(TraceContext);\n\n useEffect(() => {\n if (hasRunRef.current) return;\n if (!runId || !stepName) return;\n\n const matchingTrace = traces.find(trace => trace.runId === runId);\n if (!matchingTrace) return;\n\n const matchingSpan = matchingTrace.trace.find(span => span.name.includes(stepName));\n if (!matchingSpan) return;\n\n setTrace(matchingTrace.trace);\n setSpan(matchingSpan);\n setIsOpen(true);\n hasRunRef.current = true;\n }, [runId, traces, setTrace]);\n\n return (\n <main className=\"h-full relative overflow-hidden flex\">\n <div className=\"h-full overflow-y-scroll w-full\">\n <TracesTable traces={traces} error={error} />\n </div>\n\n {open && <TracesSidebar width={sidebarWidth} onResize={setSidebarWidth} />}\n </main>\n );\n}\n","import {\n ReactFlow,\n MiniMap,\n Controls,\n Background,\n useNodesState,\n useEdgesState,\n BackgroundVariant,\n} from '@xyflow/react';\nimport '@xyflow/react/dist/style.css';\n\nimport { contructLegacyNodesAndEdges } from './utils';\nimport { WorkflowConditionNode } from './workflow-condition-node';\nimport { WorkflowDefaultNode } from './workflow-default-node';\nimport { WorkflowAfterNode } from './workflow-after-node';\nimport { WorkflowLoopResultNode } from './workflow-loop-result-node';\nimport { useEffect, useState } from 'react';\nimport Spinner from '@/components/ui/spinner';\n\nexport function LegacyWorkflowNestedGraph({\n stepGraph,\n stepSubscriberGraph,\n open,\n}: {\n stepGraph: any;\n stepSubscriberGraph: any;\n open: boolean;\n}) {\n const { nodes: initialNodes, edges: initialEdges } = contructLegacyNodesAndEdges({\n stepGraph: stepGraph,\n stepSubscriberGraph: stepSubscriberGraph,\n });\n const [isMounted, setIsMounted] = useState(false);\n const [nodes, _, onNodesChange] = useNodesState(initialNodes);\n const [edges] = useEdgesState(initialEdges);\n\n const nodeTypes = {\n 'default-node': WorkflowDefaultNode,\n 'condition-node': WorkflowConditionNode,\n 'after-node': WorkflowAfterNode,\n 'loop-result-node': WorkflowLoopResultNode,\n };\n\n useEffect(() => {\n if (open) {\n setTimeout(() => {\n setIsMounted(true);\n }, 500); // Delay to ensure modal is fully rendered\n }\n }, [open]);\n\n return (\n <div className=\"w-full h-full relative\">\n {isMounted ? (\n <ReactFlow\n nodes={nodes}\n edges={edges}\n fitView\n fitViewOptions={{ maxZoom: 0.85 }}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n >\n <Controls />\n <MiniMap pannable zoomable maskColor=\"#121212\" bgColor=\"#171717\" nodeColor=\"#2c2c2c\" />\n <Background variant={BackgroundVariant.Lines} gap={12} size={0.5} />\n </ReactFlow>\n ) : (\n <div className=\"w-full h-full flex items-center justify-center\">\n <Spinner />\n </div>\n )}\n </div>\n );\n}\n","import { Dialog, DialogContent, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { createContext, useState } from 'react';\nimport { LegacyWorkflowNestedGraph } from '../workflow/legacy-workflow-nested-graph';\nimport { ReactFlowProvider } from '@xyflow/react';\nimport { Workflow } from 'lucide-react';\nimport { Text } from '@/components/ui/text';\n\ntype LegacyWorkflowNestedGraphContextType = {\n showNestedGraph: ({\n label,\n stepGraph,\n stepSubscriberGraph,\n }: {\n label: string;\n stepGraph: any;\n stepSubscriberGraph: any;\n }) => void;\n closeNestedGraph: () => void;\n};\n\nexport const LegacyWorkflowNestedGraphContext = createContext<LegacyWorkflowNestedGraphContextType>(\n {} as LegacyWorkflowNestedGraphContextType,\n);\n\nexport function LegacyWorkflowNestedGraphProvider({ children }: { children: React.ReactNode }) {\n const [stepGraph, setStepGraph] = useState<any>(null);\n const [stepSubscriberGraph, setStepSubscriberGraph] = useState<any>(null);\n const [openDialog, setOpenDialog] = useState<boolean>(false);\n const [label, setLabel] = useState<string>('');\n\n const closeNestedGraph = () => {\n setOpenDialog(false);\n setStepGraph(null);\n setStepSubscriberGraph(null);\n setLabel('');\n };\n\n const showNestedGraph = ({\n label,\n stepGraph,\n stepSubscriberGraph,\n }: {\n label: string;\n stepGraph: any;\n stepSubscriberGraph: any;\n }) => {\n setLabel(label);\n setStepGraph(stepGraph);\n setStepSubscriberGraph(stepSubscriberGraph);\n setOpenDialog(true);\n };\n\n return (\n <LegacyWorkflowNestedGraphContext.Provider\n value={{\n showNestedGraph,\n closeNestedGraph,\n }}\n >\n {children}\n\n <Dialog open={openDialog} onOpenChange={closeNestedGraph}>\n <DialogPortal>\n <DialogContent className=\"w-[40rem] h-[40rem] bg-[#121212] p-[0.5rem]\">\n <DialogTitle className=\"flex items-center gap-1.5 absolute top-2.5 left-2.5\">\n <Workflow className=\"text-current w-4 h-4\" />\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {label} workflow\n </Text>\n </DialogTitle>\n <ReactFlowProvider>\n <LegacyWorkflowNestedGraph\n stepGraph={stepGraph}\n open={openDialog}\n stepSubscriberGraph={stepSubscriberGraph}\n />\n </ReactFlowProvider>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n </LegacyWorkflowNestedGraphContext.Provider>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { Workflow } from 'lucide-react';\n\nimport { Text } from '@/components/ui/text';\n\nimport { cn } from '@/lib/utils';\nimport { useContext } from 'react';\nimport { LegacyWorkflowNestedGraphContext } from '../context/legacy-workflow-nested-graph-context';\n\ntype LegacyWorkflowNestedNode = Node<\n {\n label: string;\n description?: string;\n withoutTopHandle?: boolean;\n withoutBottomHandle?: boolean;\n stepGraph: any;\n stepSubscriberGraph: any;\n },\n 'nested-node'\n>;\n\nexport function LegacyWorkflowNestedNode({ data }: NodeProps<LegacyWorkflowNestedNode>) {\n const { label, withoutTopHandle, withoutBottomHandle, stepGraph, stepSubscriberGraph } = data;\n const { showNestedGraph } = useContext(LegacyWorkflowNestedGraphContext);\n return (\n <div className={cn('bg-[rgba(29,29,29,0.5)] rounded-md h-full overflow-scroll w-[274px]')}>\n {!withoutTopHandle && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n <div className=\"p-2 cursor-pointer\" onClick={() => showNestedGraph({ label, stepGraph, stepSubscriberGraph })}>\n <div className=\"text-sm bg-mastra-bg-9 flex items-center gap-1.5 rounded-sm p-2 cursor-pointer\">\n <Workflow className=\"text-current w-4 h-4\" />\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {label}\n </Text>\n </div>\n </div>\n {!withoutBottomHandle && <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />}\n </div>\n );\n}\n","import type { LegacyWorkflow } from '@mastra/core/workflows/legacy';\nimport {\n ReactFlow,\n MiniMap,\n Controls,\n Background,\n useNodesState,\n useEdgesState,\n BackgroundVariant,\n} from '@xyflow/react';\nimport '@xyflow/react/dist/style.css';\n\nimport { contructLegacyNodesAndEdges, WStep } from './utils';\nimport { WorkflowConditionNode } from './workflow-condition-node';\nimport { WorkflowDefaultNode } from './workflow-default-node';\nimport { WorkflowAfterNode } from './workflow-after-node';\nimport { WorkflowLoopResultNode } from './workflow-loop-result-node';\nimport { LegacyWorkflowNestedNode } from './legacy-workflow-nested-node';\n\nexport function LegacyWorkflowGraphInner({ workflow }: { workflow: LegacyWorkflow }) {\n const { nodes: initialNodes, edges: initialEdges } = contructLegacyNodesAndEdges({\n stepGraph: workflow.serializedStepGraph || workflow.stepGraph,\n stepSubscriberGraph: workflow.serializedStepSubscriberGraph || workflow.stepSubscriberGraph,\n steps: workflow.steps as WStep,\n });\n const [nodes, _, onNodesChange] = useNodesState(initialNodes);\n const [edges] = useEdgesState(initialEdges);\n\n const nodeTypes = {\n 'default-node': WorkflowDefaultNode,\n 'condition-node': WorkflowConditionNode,\n 'after-node': WorkflowAfterNode,\n 'loop-result-node': WorkflowLoopResultNode,\n 'nested-node': LegacyWorkflowNestedNode,\n };\n\n return (\n <div className=\"w-full h-full\">\n <ReactFlow\n nodes={nodes}\n edges={edges}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n fitView\n fitViewOptions={{\n maxZoom: 0.85,\n }}\n >\n <Controls />\n <MiniMap pannable zoomable maskColor=\"#121212\" bgColor=\"#171717\" nodeColor=\"#2c2c2c\" />\n <Background variant={BackgroundVariant.Dots} gap={12} size={0.5} />\n </ReactFlow>\n </div>\n );\n}\n","import { Skeleton } from '@/components/ui/skeleton';\n\nimport { useLegacyWorkflow } from '@/hooks/use-workflows';\nimport '../../../index.css';\n\nimport { LegacyWorkflowGraphInner } from './legacy-workflow-graph-inner';\nimport { lodashTitleCase } from '@/lib/string';\nimport { AlertCircleIcon } from 'lucide-react';\nimport { LegacyWorkflowNestedGraphProvider } from '../context/legacy-workflow-nested-graph-context';\nimport { ReactFlowProvider } from '@xyflow/react';\n\nexport function LegacyWorkflowGraph({ workflowId }: { workflowId: string }) {\n const { legacyWorkflow, isLoading } = useLegacyWorkflow(workflowId);\n\n if (isLoading) {\n return (\n <div className=\"p-4\">\n <Skeleton className=\"h-[600px]\" />\n </div>\n );\n }\n\n if (!legacyWorkflow) {\n return (\n <div className=\"grid h-full place-items-center\">\n <div className=\"flex flex-col items-center gap-2\">\n <AlertCircleIcon />\n <div>We couldn't find {lodashTitleCase(workflowId)} workflow.</div>\n </div>\n </div>\n );\n }\n\n return (\n <LegacyWorkflowNestedGraphProvider>\n <ReactFlowProvider>\n <LegacyWorkflowGraphInner workflow={legacyWorkflow} />\n </ReactFlowProvider>\n </LegacyWorkflowNestedGraphProvider>\n );\n}\n","import React from 'react';\n\nexport const Form = React.forwardRef<HTMLFormElement, React.ComponentProps<'form'>>(({ children, ...props }, ref) => {\n return (\n <form ref={ref} className=\"space-y-4\" {...props}>\n {children}\n </form>\n );\n});\n","import React from 'react';\n\nimport { FieldWrapperProps } from '@autoform/react';\nimport { Txt } from '@/ds/components/Txt';\n\nconst DISABLED_LABELS = ['boolean', 'object', 'array'];\n\nexport const FieldWrapper: React.FC<FieldWrapperProps> = ({ label, children, id, field, error }) => {\n const isDisabled = DISABLED_LABELS.includes(field.type);\n\n return (\n <div className=\"pb-4 last:pb-0\">\n {!isDisabled && (\n <Txt as=\"label\" variant=\"ui-sm\" className=\"text-icon3 pb-1 block\" htmlFor={id}>\n {label}\n {field.required && <span className=\"text-accent2\"> *</span>}\n </Txt>\n )}\n\n {children}\n\n {field.fieldConfig?.description && (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-icon6\">\n {field.fieldConfig.description}\n </Txt>\n )}\n\n {error && (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-accent2\">\n {error}\n </Txt>\n )}\n </div>\n );\n};\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground',\n destructive: 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5 ref={ref} className={cn('mb-1 font-medium leading-none tracking-tight', className)} {...props} />\n ),\n);\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\n ),\n);\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import React from 'react';\nimport { AlertCircle } from 'lucide-react';\n\nimport { Alert, AlertTitle } from '@/components/ui/alert';\n\nexport const ErrorMessage: React.FC<{ error: string }> = ({ error }) => (\n <Alert variant=\"destructive\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>{error}</AlertTitle>\n </Alert>\n);\n","import React from 'react';\nimport { Button } from '@/components/ui/button';\n\nexport const SubmitButton: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n <Button type=\"submit\">{children}</Button>\n);\n","import { Input } from '@/components/ui/input';\nimport { AutoFormFieldProps } from '@autoform/react';\nimport React from 'react';\n\nexport const StringField: React.FC<AutoFormFieldProps> = ({ inputProps, error, field, id }) => {\n const { key, ...props } = inputProps;\n\n return <Input id={id} className={error ? 'border-destructive' : ''} {...props} defaultValue={field.default} />;\n};\n","import { Input } from '@/components/ui/input';\nimport { AutoFormFieldProps } from '@autoform/react';\nimport React, { useEffect } from 'react';\n\nexport const NumberField: React.FC<AutoFormFieldProps> = ({ inputProps, error, field, id }) => {\n const { key, ...props } = inputProps;\n\n useEffect(() => {\n if (field.default !== undefined) {\n props.onChange({\n target: { value: Number(field.default), name: inputProps.name },\n });\n }\n }, [field.default]);\n\n return (\n <Input\n id={id}\n type=\"number\"\n className={error ? 'border-destructive' : ''}\n {...props}\n defaultValue={field.default !== undefined ? Number(field.default) : undefined}\n onChange={e => {\n const value = e.target.value;\n if (value !== '' && !isNaN(Number(value))) {\n props.onChange({\n target: { value: value, name: inputProps.name },\n });\n }\n }}\n onBlur={e => {\n const value = e.target.value;\n if (value !== '' && !isNaN(Number(value))) {\n props.onChange({\n target: { value: Number(value), name: inputProps.name },\n });\n }\n }}\n />\n );\n};\n","import * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className={cn('flex items-center justify-center text-current')}>\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import React from 'react';\nimport { Checkbox } from '@/components/ui/checkbox';\nimport { AutoFormFieldProps } from '@autoform/react';\nimport { Txt } from '@/ds/components/Txt';\n\nexport const BooleanField: React.FC<AutoFormFieldProps> = ({ field, label, id, inputProps, value }) => (\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id={id}\n onCheckedChange={checked => {\n // react-hook-form expects an event object\n const event = {\n target: {\n name: inputProps.name,\n value: checked,\n },\n };\n inputProps.onChange(event);\n }}\n defaultChecked={field.default}\n disabled={inputProps.disabled || inputProps.readOnly}\n />\n <Txt as=\"label\" variant=\"ui-sm\" className=\"text-icon3\" htmlFor={id}>\n {label}\n {field.required && <span className=\"text-accent2\"> *</span>}\n </Txt>\n </div>\n);\n","'use client';\n\nimport { CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { DayPicker } from 'react-day-picker';\n\nimport { cn } from '../../lib/utils';\n\nimport { buttonVariants } from './button';\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn('p-3', className)}\n classNames={{\n months: 'flex flex-col space-y-4 sm:space-y-0',\n month: 'space-y-4',\n // month_caption: 'flex justify-center pt-1 relative items-center',\n caption_label: 'text-sm text-text font-medium',\n nav: 'space-x-1 flex items-center',\n nav_button_previous: cn(\n buttonVariants({ variant: 'outline' }),\n 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100',\n 'absolute left-4 top-[56px] z-10',\n ),\n nav_button_next: cn(\n buttonVariants({ variant: 'outline' }),\n 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100',\n 'absolute right-4 top-[56px] z-10',\n ),\n dropdown_month: 'w-full border-collapse space-y-1',\n weeknumber: 'flex',\n day: cn(\n buttonVariants({ variant: 'ghost' }),\n 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md',\n props.mode === 'range'\n ? '[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md'\n : '[&:has([aria-selected])]:rounded-md',\n 'h-8 w-8 p-0 hover:bg-lightGray-7/50 font-normal aria-selected:opacity-100',\n ),\n day_range_start: 'day-range-start',\n day_range_end: 'day-range-end',\n day_selected:\n '!bg-primary !text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\n day_today: 'bg-lightGray-7/50 text-accent-foreground',\n day_outside:\n 'day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30',\n day_disabled: 'text-muted-foreground opacity-50',\n day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground',\n day_hidden: 'invisible',\n ...classNames,\n }}\n components={\n {\n // IconDropdown: ({ }) => (\n // <CalendarIcon\n // className={cn('h-4 w-4', {\n // 'rotate-180': orientation === 'up',\n // 'rotate-90': orientation === 'left',\n // '-rotate-90': orientation === 'right',\n // })}\n // />\n // ),\n }\n }\n {...props}\n />\n );\n}\nCalendar.displayName = 'Calendar';\n\nexport { Calendar };\n","'use client';\n\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","'use client';\n\nimport { format, isValid } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { cn } from '../../lib/utils';\n\nimport { Button } from './button';\nimport { Calendar } from './calendar';\nimport { Input } from './input';\nimport { Popover, PopoverContent, PopoverTrigger } from './popover';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n setValue: (date: Date | undefined | null) => void;\n clearable?: boolean;\n};\n\nexport type DatePickerProps =\n | (CommonProps & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & { children: React.ReactNode; className?: never; placeholder?: string });\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n value,\n setValue,\n children,\n className,\n placeholder,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultButton\n value={value}\n placeholder={placeholder}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto p-0 bg-[#171717]\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DatePickerOnly\n value={value}\n setValue={v => setValue(v ? new Date(`${v}z`) : null)} // TODO: Leave in the Z to prevent casting via timezone\n clearable={props.clearable}\n setOpenPopover={setOpenPopover}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nexport const DatePickerOnly = ({\n value,\n setValue,\n setOpenPopover,\n clearable,\n placeholder,\n className,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [inputValue, setInputValue] = React.useState<string>(value ? format(value, 'PP') : '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n setValue?.(date);\n setOpenPopover?.(false);\n }\n }, 2000);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setInputValue(e.currentTarget.value);\n const date = new Date(e.target.value);\n debouncedDateUpdate(date);\n };\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n setValue?.(date);\n setOpenPopover?.(false);\n if (date) {\n setInputValue(format(date, 'PP'));\n } else {\n setInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n setInputValue(format(date, 'PP'));\n } else {\n setInputValue('');\n }\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className=\"relative mt-2 flex flex-col gap-2\"\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <div className=\"w-full px-3\">\n <Input\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n placeholder={placeholder}\n className={className}\n />\n </div>\n <Calendar\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n <div className=\"px-3 pb-2\">\n {clearable && (\n <Button\n variant=\"outline\"\n tabIndex={0}\n className=\"w-full !opacity-50 duration-200 hover:!opacity-100\"\n onClick={() => {\n setValue(null);\n setSelected(undefined);\n setInputValue('');\n setOpenPopover?.(false);\n }}\n >\n Clear\n </Button>\n )}\n </div>\n </div>\n );\n};\n\ninterface DefaultButtonProps {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n}\n\nconst DefaultButton = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, className, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n variant={'outline'}\n className={cn(\n 'bg-neutral-825 border-neutral-775 w-full justify-start whitespace-nowrap rounded-md border px-2 py-0 text-left flex items-center gap-1',\n className,\n )}\n {...props}\n >\n <CalendarIcon className=\"h-4 w-4\" />\n {value ? (\n <span className=\"text-white\">{format(value, 'PPP')}</span>\n ) : (\n <span className=\"text-gray\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n\nDefaultButton.displayName = 'DefaultButton';\n","import { AutoFormFieldProps } from '@autoform/react';\nimport React, { useState, useEffect } from 'react';\nimport { DatePicker } from '../../date-picker';\nimport { isValid } from 'date-fns';\n\nexport const DateField: React.FC<AutoFormFieldProps> = ({ inputProps, field, error, id }) => {\n const { key, ...props } = inputProps;\n const [value, setValue] = useState<Date | null>(null);\n\n useEffect(() => {\n if (field.default) {\n const date = new Date(field.default);\n if (isValid(date)) {\n setValue(date);\n }\n }\n }, [field]);\n\n return (\n <DatePicker\n id={id}\n className={error ? 'border-destructive' : ''}\n value={value}\n setValue={date => {\n const newDate = date ? new Date(date).toISOString() : date;\n if (newDate) {\n props.onChange({\n target: { value: newDate?.toString(), name: inputProps.name },\n });\n setValue(new Date(newDate));\n }\n }}\n clearable={true}\n />\n );\n};\n","'use client';\n\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n {...props}\n >\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-mastra-el-5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n","import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';\nimport { AutoFormFieldProps } from '@autoform/react';\nimport React from 'react';\n\nexport const SelectField: React.FC<AutoFormFieldProps> = ({ field, inputProps, error, id, value }) => {\n const { key, ...props } = inputProps;\n\n return (\n <Select\n {...props}\n onValueChange={value => {\n const syntheticEvent = {\n target: {\n value,\n name: inputProps.name,\n },\n } as React.ChangeEvent<HTMLInputElement>;\n props.onChange(syntheticEvent);\n }}\n defaultValue={field.default}\n >\n <SelectTrigger id={id} className={error ? 'border-destructive' : ''}>\n <SelectValue placeholder=\"Select an option\" />\n </SelectTrigger>\n <SelectContent>\n {(field.options || []).map(([key, label]) => (\n <SelectItem key={key} value={key}>\n {label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n );\n};\n","import React from 'react';\nimport { ObjectWrapperProps } from '@autoform/react';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons';\nimport { Braces } from 'lucide-react';\n\nexport const ObjectWrapper: React.FC<ObjectWrapperProps> = ({ label, children }) => {\n const hasLabel = label !== '\\u200B' && label !== '';\n\n return (\n <div className=\"\">\n {hasLabel && (\n <Txt as=\"h3\" variant=\"ui-sm\" className=\"text-icon3 flex items-center gap-1 pb-2\">\n <Icon size=\"sm\">\n <Braces />\n </Icon>\n\n {label}\n </Txt>\n )}\n\n <div\n className={\n hasLabel ? 'flex flex-col gap-1 [&>*]:border-dashed [&>*]:border-l [&>*]:border-l-border1 [&>*]:pl-4' : ''\n }\n >\n {children}\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nimport { Brackets, PlusIcon } from 'lucide-react';\nimport { ArrayWrapperProps } from '@autoform/react';\nimport { Txt } from '@/ds/components/Txt';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../tooltip';\nimport { Icon } from '@/ds/icons';\n\nexport const ArrayWrapper: React.FC<ArrayWrapperProps> = ({ label, children, onAddItem }) => {\n return (\n <div>\n <div className=\"flex gap-2 justify-between\">\n <Txt as=\"h3\" variant=\"ui-sm\" className=\"text-icon3 pb-2 flex items-center gap-1\">\n <Icon size=\"sm\">\n <Brackets />\n </Icon>\n\n {label}\n </Txt>\n\n <TooltipProvider>\n <Tooltip delayDuration={0}>\n <TooltipTrigger asChild>\n <button\n onClick={onAddItem}\n type=\"button\"\n className=\"text-icon3 bg-surface3 rounded-md p-1 hover:bg-surface4 hover:text-icon6 h-icon-sm w-icon-sm\"\n >\n <Icon size=\"sm\">\n <PlusIcon />\n </Icon>\n </button>\n </TooltipTrigger>\n <TooltipContent>Add item</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </div>\n\n <div className=\"flex flex-col gap-1\">{children}</div>\n </div>\n );\n};\n","import React from 'react';\nimport { TrashIcon } from 'lucide-react';\nimport { ArrayElementWrapperProps } from '@autoform/react';\nimport { Icon } from '@/ds/icons';\nimport { Button } from '@/ds/components/Button';\n\nexport const ArrayElementWrapper: React.FC<ArrayElementWrapperProps> = ({ children, onRemove }) => {\n return (\n <div className=\"pl-4 border-l border-border1\">\n {children}\n <Button onClick={onRemove} type=\"button\">\n <Icon size=\"sm\">\n <TrashIcon />\n </Icon>\n Delete\n </Button>\n </div>\n );\n};\n","import { AutoFormFieldProps } from '@autoform/react';\nimport { v4 as uuid } from '@lukeed/uuid';\nimport { Plus, TrashIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '../../button';\nimport { Input } from '../../input';\n\ninterface KeyValuePair {\n id: string;\n key: string;\n value: string;\n}\n\nexport const RecordField: React.FC<AutoFormFieldProps> = ({ inputProps, field, error, id }) => {\n const { key, onChange, ...props } = inputProps;\n const [pairs, setPairs] = React.useState<KeyValuePair[]>(() =>\n Object.entries(field.default || {}).map(([key, val]) => ({\n id: key || uuid(),\n key,\n value: val as string,\n })),\n );\n\n React.useEffect(() => {\n if (pairs.length === 0) {\n setPairs([{ id: uuid(), key: '', value: '' }]);\n }\n }, [pairs]);\n\n const updateForm = React.useCallback(\n (newPairs: KeyValuePair[]) => {\n const newValue = newPairs.reduce(\n (acc, pair) => {\n if (pair.key) {\n acc[pair.key] = pair.value;\n }\n return acc;\n },\n {} as Record<string, string>,\n );\n\n onChange?.({\n target: { value: newValue, name: inputProps.name },\n });\n },\n [onChange, inputProps.name],\n );\n\n const handleChange = (id: string, field: 'key' | 'value', newValue: string) => {\n setPairs(prev => prev.map(pair => (pair.id === id ? { ...pair, [field]: newValue } : pair)));\n };\n\n const handleBlur = () => {\n updateForm(pairs);\n };\n\n const addPair = () => {\n const newPairs = [...pairs, { id: uuid(), key: '', value: '' }];\n setPairs(newPairs);\n updateForm(newPairs);\n };\n\n const removePair = (id: string) => {\n const newPairs = pairs.filter(p => p.id !== id);\n if (newPairs.length === 0) {\n newPairs.push({ id: uuid(), key: '', value: '' });\n }\n setPairs(newPairs);\n updateForm(newPairs);\n };\n\n return (\n <div className=\"space-y-3\">\n {pairs.map(pair => (\n <div key={pair.id} className=\"relative space-y-2 rounded-lg border p-4\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute right-2 top-2\"\n onClick={() => removePair(pair.id)}\n >\n <TrashIcon className=\"h-4 w-4\" />\n </Button>\n\n <div className=\"space-y-2 pt-6\">\n <Input\n placeholder=\"Key\"\n value={pair.key}\n onChange={e => handleChange(pair.id, 'key', e.target.value)}\n onBlur={handleBlur}\n />\n <Input\n placeholder=\"Value\"\n value={pair.value}\n onChange={e => handleChange(pair.id, 'value', e.target.value)}\n onBlur={handleBlur}\n />\n </div>\n </div>\n ))}\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"w-full\" onClick={addPair}>\n <Plus className=\"mr-2 h-4 w-4\" />\n Add Key-Value Pair\n </Button>\n </div>\n );\n};\n","import React from 'react';\nimport { AutoForm as BaseAutoForm, AutoFormUIComponents } from '@autoform/react';\nimport { AutoFormProps } from './types';\nimport { Form } from './components/Form';\nimport { FieldWrapper } from './components/FieldWrapper';\nimport { ErrorMessage } from './components/ErrorMessage';\nimport { SubmitButton } from './components/SubmitButton';\nimport { StringField } from './components/StringField';\nimport { NumberField } from './components/NumberField';\nimport { BooleanField } from './components/BooleanField';\nimport { DateField } from './components/DateField';\nimport { SelectField } from './components/SelectField';\nimport { ObjectWrapper } from './components/ObjectWrapper';\nimport { ArrayWrapper } from './components/ArrayWrapper';\nimport { ArrayElementWrapper } from './components/ArrayElementWrapper';\nimport { RecordField } from './components/RecordField';\n\nconst ShadcnUIComponents: AutoFormUIComponents = {\n Form,\n FieldWrapper,\n ErrorMessage,\n SubmitButton,\n ObjectWrapper,\n ArrayWrapper,\n ArrayElementWrapper,\n};\n\nexport const ShadcnAutoFormFieldComponents = {\n string: StringField,\n number: NumberField,\n boolean: BooleanField,\n date: DateField,\n select: SelectField,\n record: RecordField,\n};\nexport type FieldTypes = keyof typeof ShadcnAutoFormFieldComponents;\n\nexport function AutoForm<T extends Record<string, any>>({\n uiComponents,\n formComponents,\n readOnly,\n ...props\n}: AutoFormProps<T> & { readOnly?: boolean }) {\n return (\n <BaseAutoForm\n {...props}\n uiComponents={{ ...ShadcnUIComponents, ...uiComponents }}\n formComponents={{\n string: props => <StringField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n number: props => <NumberField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n boolean: props => <BooleanField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n date: props => <DateField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n select: props => <SelectField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n record: props => <RecordField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n ...formComponents,\n }}\n />\n );\n}\n","import { buildZodFieldConfig } from '@autoform/react';\nimport { FieldTypes } from './AutoForm';\n\nexport const fieldConfig = buildZodFieldConfig<\n FieldTypes,\n {\n // Add types for `customData` here.\n }\n>();\n","import { FieldConfig } from '@autoform/core';\nimport { z } from 'zod';\n\nexport function inferFieldType(schema: z.ZodTypeAny, fieldConfig?: FieldConfig): string {\n if (fieldConfig?.fieldType) {\n return fieldConfig.fieldType;\n }\n\n if (schema instanceof z.ZodObject) return 'object';\n if (schema instanceof z.ZodNumber) return 'number';\n if (schema instanceof z.ZodBoolean) return 'boolean';\n if (schema instanceof z.ZodDate || (schema as any)?.isDatetime || (schema as any)?.isDate) return 'date';\n if (schema instanceof z.ZodString) return 'string';\n if (schema instanceof z.ZodEnum) return 'select';\n if (schema instanceof z.ZodNativeEnum) return 'select';\n if (schema instanceof z.ZodArray) return 'array';\n if (schema instanceof z.ZodRecord) return 'record';\n\n return 'string'; // Default to string for unknown types\n}\n","import { ParsedField, ParsedSchema } from '@autoform/core';\nimport { getDefaultValueInZodStack, getFieldConfigInZodStack, ZodObjectOrWrapped, ZodProvider } from '@autoform/zod';\nimport { z } from 'zod';\nimport { inferFieldType } from './field-type-inference';\n\nfunction parseField(key: string, schema: z.ZodTypeAny): ParsedField {\n const baseSchema = getBaseSchema(schema);\n const fieldConfig = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldConfig);\n const defaultValue = getDefaultValueInZodStack(schema);\n\n // Enums\n const options = baseSchema._def?.values;\n let optionValues: [string, string][] = [];\n if (options) {\n if (!Array.isArray(options)) {\n optionValues = Object.entries(options);\n } else {\n optionValues = options.map(value => [value, value]);\n }\n }\n\n // Arrays and objects\n let subSchema: ParsedField[] = [];\n if (baseSchema instanceof z.ZodObject) {\n subSchema = Object.entries(baseSchema.shape).map(([key, field]) => parseField(key, field as z.ZodTypeAny));\n }\n if (baseSchema instanceof z.ZodArray) {\n subSchema = [parseField('0', baseSchema._def.type)];\n }\n\n return {\n key,\n type,\n required: !schema.isOptional(),\n default: defaultValue,\n description: baseSchema.description,\n fieldConfig,\n options: optionValues,\n schema: subSchema,\n };\n}\n\nfunction getBaseSchema<ChildType extends z.ZodAny | z.ZodTypeAny | z.AnyZodObject = z.ZodAny>(\n schema: ChildType | z.ZodEffects<ChildType>,\n): ChildType {\n if ('innerType' in schema._def) {\n return getBaseSchema(schema._def.innerType as ChildType);\n }\n if ('schema' in schema._def) {\n return getBaseSchema(schema._def.schema as ChildType);\n }\n return schema as ChildType;\n}\n\nexport function parseSchema(schema: ZodObjectOrWrapped): ParsedSchema {\n const objectSchema = schema instanceof z.ZodEffects ? schema.innerType() : schema;\n const shape = objectSchema.shape;\n\n const fields: ParsedField[] = Object.entries(shape).map(([key, field]) => parseField(key, field as z.ZodTypeAny));\n\n return { fields };\n}\n\nexport class CustomZodProvider<T extends ZodObjectOrWrapped> extends ZodProvider<T> {\n private _schema: T;\n constructor(schema: T) {\n super(schema);\n this._schema = schema;\n }\n\n parseSchema(): ParsedSchema {\n return parseSchema(this._schema);\n }\n}\n","'use client';\n\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst labelVariants = cva('text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70');\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","'use client';\n\nimport { Loader2 } from 'lucide-react';\nimport { Button } from '../../ds/components/Button';\nimport { ScrollArea } from '../ui/scroll-area';\nimport { AutoForm, CustomZodProvider } from '@/components/ui/autoform';\nimport type { ExtendableAutoFormProps } from '@autoform/react';\nimport z, { ZodObject } from 'zod';\nimport { Label } from '../ui/label';\nimport { Icon } from '@/ds/icons';\n\ninterface DynamicFormProps<T extends z.ZodSchema> {\n schema: T;\n onSubmit?: (values: z.infer<T>) => void | Promise<void>;\n defaultValues?: z.infer<T>;\n isSubmitLoading?: boolean;\n submitButtonLabel?: string;\n className?: string;\n readOnly?: boolean;\n}\n\nfunction isEmptyZodObject(schema: unknown): boolean {\n if (schema instanceof ZodObject) {\n return Object.keys(schema.shape).length === 0;\n }\n return false;\n}\n\nexport function DynamicForm<T extends z.ZodSchema>({\n schema,\n onSubmit,\n defaultValues,\n isSubmitLoading,\n submitButtonLabel,\n className,\n readOnly,\n}: DynamicFormProps<T>) {\n const isNotZodObject = !(schema instanceof ZodObject);\n if (!schema) {\n console.error('no form schema found');\n return null;\n }\n\n const normalizedSchema = (schema: z.ZodSchema) => {\n if (isEmptyZodObject(schema)) {\n return z.object({});\n }\n if (isNotZodObject) {\n // using a non-printable character to avoid conflicts with the form data\n return z.object({\n '\\u200B': schema,\n });\n }\n return schema;\n };\n\n const schemaProvider = new CustomZodProvider(normalizedSchema(schema) as any);\n\n const formProps: ExtendableAutoFormProps<z.infer<T>> = {\n schema: schemaProvider,\n onSubmit: async values => {\n await onSubmit?.(isNotZodObject ? values['\\u200B'] || {} : values);\n },\n defaultValues: isNotZodObject ? (defaultValues ? { '\\u200B': defaultValues } : undefined) : defaultValues,\n formProps: {\n className: '',\n },\n uiComponents: {\n SubmitButton: ({ children }) =>\n onSubmit ? (\n <Button variant=\"light\" className=\"w-full\" size=\"lg\" disabled={isSubmitLoading}>\n {isSubmitLoading ? (\n <Icon>\n <Loader2 className=\"animate-spin\" />\n </Icon>\n ) : (\n submitButtonLabel || children\n )}\n </Button>\n ) : null,\n },\n formComponents: {\n Label: ({ value }) => <Label className=\"text-sm font-normal\">{value}</Label>,\n },\n withSubmit: true,\n };\n\n return <AutoForm {...formProps} readOnly={readOnly} />;\n}\n","import { z } from 'zod';\n\n/**\n * Resolve serialized zod output - This function takes the string output ot the `jsonSchemaToZod` function\n * and instantiates the zod object correctly.\n *\n * @param obj - serialized zod object\n * @returns resolved zod object\n */\nexport function resolveSerializedZodOutput(obj: any) {\n return Function('z', `\"use strict\";return (${obj});`)(z);\n}\n","import { themes } from 'prism-react-renderer';\nimport { CodeBlock } from 'react-code-block';\n\nimport { cn } from '../../lib/utils';\n\nfunction CodeBlockDemo({\n code = '',\n language = 'ts',\n filename,\n className,\n}: {\n code?: string;\n language: 'ts' | 'json';\n filename?: string;\n className?: string;\n}) {\n return (\n <CodeBlock code={code} language={language} theme={themes.oneDark}>\n {filename ? (\n <div className=\"absolute w-full px-6 py-2 pl-4 text-sm rounded bg-mastra-bg-2 text-mastra-el-6/50\">\n {filename}\n </div>\n ) : null}\n\n <CodeBlock.Code\n className={cn('bg-transparent h-full p-6 rounded-xl whitespace-pre-wrap', filename ? 'pt-10' : '', className)}\n >\n <div className=\"table-row\">\n <div className=\"flex items-center\">\n <CodeBlock.LineNumber className=\"table-cell pr-4 text-sm text-right select-none text-gray-500/50\" />\n <CodeBlock.LineContent className=\"flex\">\n <CodeBlock.Token className=\"font-mono text-sm mastra-token\" />\n </CodeBlock.LineContent>\n </div>\n </div>\n </CodeBlock.Code>\n </CodeBlock>\n );\n}\n\nexport { CodeBlockDemo };\n","export interface WorkflowCardProps {\n header: React.ReactNode;\n children?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nexport const WorkflowCard = ({ header, children, footer }: WorkflowCardProps) => {\n return (\n <div className=\"rounded-lg border-sm border-border1 bg-surface4\">\n <div className=\"py-1 px-2 flex items-center gap-3\">{header}</div>\n {children && <div className=\"border-t-sm border-border1\">{children}</div>}\n {footer && <div className=\"py-1 px-2 border-t-sm border-border1\">{footer}</div>}\n </div>\n );\n};\n","import { Txt } from '@/ds/components/Txt';\nimport { CheckIcon, CrossIcon, Icon } from '@/ds/icons';\nimport { Loader2 } from 'lucide-react';\nimport { WorkflowCard } from './workflow-card';\n\nexport interface LegacyWorkflowStatusProps {\n stepId: string;\n pathStatus: string;\n path: string;\n}\n\nexport const LegacyWorkflowStatus = ({ stepId, pathStatus, path }: LegacyWorkflowStatusProps) => {\n const status =\n pathStatus === 'completed'\n ? 'Completed'\n : stepId === path\n ? pathStatus.charAt(0).toUpperCase() + pathStatus.slice(1)\n : pathStatus === 'executing'\n ? 'Executing'\n : 'Completed';\n\n return (\n <WorkflowCard\n header={\n <div className=\"flex items-center gap-3\">\n <Icon>\n {status === 'Completed' && <CheckIcon className=\"text-accent1\" />}\n {status === 'Failed' && <CrossIcon className=\"text-accent2\" />}\n {status === 'Executing' && <Loader2 className=\"text-icon3 animate-spin\" />}\n </Icon>\n <Txt as=\"span\" variant=\"ui-lg\" className=\"text-icon6 font-medium\">\n {path}\n </Txt>\n </div>\n }\n />\n );\n};\n","import { Txt } from '@/ds/components/Txt';\nimport { WorkflowCard } from './workflow-card';\nimport { DeploymentIcon, Icon } from '@/ds/icons';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { CopyIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { CodeBlockDemo } from '@/components/ui/code-block';\n\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nexport interface WorkflowResultProps {\n jsonResult: string;\n sanitizedJsonResult?: string | null;\n}\n\nexport const WorkflowResult = ({ jsonResult, sanitizedJsonResult }: WorkflowResultProps) => {\n const { handleCopy } = useCopyToClipboard({ text: jsonResult });\n const [expanded, setExpanded] = useState(false);\n\n return (\n <WorkflowCard\n header={\n <div className=\"flex items-center gap-2 justify-between w-full\">\n <Txt variant=\"ui-lg\" className=\"text-icon6 flex items-center gap-3 font-medium\">\n <Icon>\n <DeploymentIcon />\n </Icon>\n Workflow Execution (JSON)\n </Txt>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n className=\"p-2 rounded-lg hover:bg-surface5 transition-colors duration-150 ease-in-out text-icon3 hover:text-icon6\"\n onClick={() => handleCopy()}\n >\n <Icon size=\"sm\">\n <CopyIcon />\n </Icon>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy result</TooltipContent>\n </Tooltip>\n </div>\n }\n footer={\n <button\n className=\"w-full h-full text-center text-icon2 hover:text-icon6 text-ui-md\"\n onClick={() => setExpanded(s => !s)}\n >\n {expanded ? 'collapse' : 'expand'}\n </button>\n }\n children={\n expanded ? (\n <CodeBlockDemo className=\"w-full overflow-x-auto\" code={sanitizedJsonResult || jsonResult} language=\"json\" />\n ) : null\n }\n />\n );\n};\n","import jsonSchemaToZod from 'json-schema-to-zod';\nimport { Loader2 } from 'lucide-react';\nimport { useState, useEffect, useContext } from 'react';\nimport { parse } from 'superjson';\nimport { z } from 'zod';\n\nimport { DynamicForm } from '@/components/dynamic-form';\nimport { resolveSerializedZodOutput } from '@/components/dynamic-form/utils';\nimport { Button } from '@/ds/components/Button';\nimport { CodeBlockDemo } from '@/components/ui/code-block';\n\nimport { ScrollArea } from '@/components/ui/scroll-area';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Text } from '@/components/ui/text';\n\nimport { useExecuteWorkflow, useWatchWorkflow, useResumeWorkflow, useLegacyWorkflow } from '@/hooks/use-workflows';\nimport { WorkflowRunContext } from '../context/workflow-run-context';\nimport { toast } from 'sonner';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons';\nimport { LegacyWorkflowStatus } from './legacy-workflow-status';\n\nimport { WorkflowResult } from './workflow-result';\n\ninterface SuspendedStep {\n stepId: string;\n runId: string;\n suspendPayload: any;\n}\n\nexport function LegacyWorkflowTrigger({\n workflowId,\n setRunId,\n}: {\n workflowId: string;\n setRunId?: (runId: string) => void;\n}) {\n const { legacyResult: result, setLegacyResult: setResult, payload, setPayload } = useContext(WorkflowRunContext);\n const { isLoading, legacyWorkflow: workflow } = useLegacyWorkflow(workflowId);\n const { createLegacyWorkflowRun: createWorkflowRun, startLegacyWorkflowRun: startWorkflowRun } = useExecuteWorkflow();\n const {\n watchLegacyWorkflow: watchWorkflow,\n legacyWatchResult: watchResult,\n isWatchingLegacyWorkflow: isWatchingWorkflow,\n } = useWatchWorkflow();\n const { resumeLegacyWorkflow: resumeWorkflow, isResumingLegacyWorkflow: isResumingWorkflow } = useResumeWorkflow();\n const [suspendedSteps, setSuspendedSteps] = useState<SuspendedStep[]>([]);\n const [isRunning, setIsRunning] = useState(false);\n const triggerSchema = workflow?.triggerSchema;\n\n const handleExecuteWorkflow = async (data: any) => {\n try {\n if (!workflow) return;\n setIsRunning(true);\n\n setResult(null);\n\n const { runId } = await createWorkflowRun({ workflowId });\n\n setRunId?.(runId);\n\n watchWorkflow({ workflowId, runId });\n\n startWorkflowRun({ workflowId, runId, input: data });\n } catch (err) {\n setIsRunning(false);\n toast.error('Error executing workflow');\n }\n };\n\n const handleResumeWorkflow = async (step: SuspendedStep & { context: any }) => {\n if (!workflow) return;\n\n const { stepId, runId: prevRunId, context } = step;\n\n const { runId } = await createWorkflowRun({ workflowId, prevRunId });\n\n watchWorkflow({ workflowId, runId });\n\n await resumeWorkflow({\n stepId,\n runId,\n context,\n workflowId,\n });\n };\n\n const watchResultToUse = result ?? watchResult;\n\n const workflowActivePaths = watchResultToUse?.activePaths ?? {};\n\n useEffect(() => {\n setIsRunning(isWatchingWorkflow);\n }, [isWatchingWorkflow]);\n\n useEffect(() => {\n if (!watchResultToUse?.activePaths || !result?.runId) return;\n\n const suspended = Object.entries(watchResultToUse.activePaths)\n .filter(([_, { status }]) => status === 'suspended')\n .map(([stepId, { suspendPayload }]) => ({\n stepId,\n runId: result.runId,\n suspendPayload,\n }));\n setSuspendedSteps(suspended);\n }, [watchResultToUse, result]);\n\n useEffect(() => {\n if (watchResult) {\n setResult(watchResult);\n }\n }, [watchResult]);\n\n if (isLoading) {\n return (\n <ScrollArea className=\"h-[calc(100vh-126px)] pt-2 px-4 pb-4 text-xs\">\n <div className=\"space-y-4\">\n <Skeleton className=\"h-10\" />\n <Skeleton className=\"h-10\" />\n </div>\n </ScrollArea>\n );\n }\n\n if (!workflow) return null;\n\n const isSuspendedSteps = suspendedSteps.length > 0;\n\n const zodInputSchema = triggerSchema ? resolveSerializedZodOutput(jsonSchemaToZod(parse(triggerSchema))) : null;\n\n const { sanitizedOutput, ...restResult } = result ?? {};\n\n const hasWorkflowActivePaths = Object.values(workflowActivePaths).length > 0;\n\n return (\n <div className=\"h-full px-5 pt-3 pb-12\">\n <div className=\"space-y-4\">\n {isResumingWorkflow && (\n <div className=\"py-2 px-5 flex items-center gap-2 bg-surface5 -mx-5 -mt-5 border-b-sm border-border1\">\n <Icon>\n <Loader2 className=\"animate-spin text-icon6\" />\n </Icon>\n <Txt>Resuming workflow</Txt>\n </div>\n )}\n\n {!isSuspendedSteps && (\n <>\n {zodInputSchema ? (\n <DynamicForm\n schema={zodInputSchema}\n defaultValues={payload}\n isSubmitLoading={isWatchingWorkflow}\n submitButtonLabel=\"Run\"\n onSubmit={data => {\n setPayload(data);\n handleExecuteWorkflow(data);\n }}\n />\n ) : (\n <Button\n className=\"w-full\"\n variant=\"light\"\n disabled={isRunning}\n onClick={() => handleExecuteWorkflow(null)}\n >\n {isRunning ? (\n <Icon>\n <Loader2 className=\"animate-spin\" />\n </Icon>\n ) : (\n 'Trigger'\n )}\n </Button>\n )}\n </>\n )}\n\n {isSuspendedSteps &&\n suspendedSteps?.map(step => {\n const stepDefinition = workflow.steps[step.stepId];\n const stepSchema = stepDefinition?.inputSchema\n ? resolveSerializedZodOutput(jsonSchemaToZod(parse(stepDefinition.inputSchema)))\n : z.record(z.string(), z.any());\n return (\n <div className=\"flex flex-col px-4\">\n <Text variant=\"secondary\" className=\"text-mastra-el-3\" size=\"xs\">\n {step.stepId}\n </Text>\n {step.suspendPayload && (\n <div>\n <CodeBlockDemo\n className=\"w-full overflow-x-auto p-2\"\n code={JSON.stringify(step.suspendPayload, null, 2)}\n language=\"json\"\n />\n </div>\n )}\n <DynamicForm\n schema={stepSchema}\n isSubmitLoading={isResumingWorkflow}\n submitButtonLabel=\"Resume\"\n onSubmit={data => {\n handleResumeWorkflow({\n stepId: step.stepId,\n runId: step.runId,\n suspendPayload: step.suspendPayload,\n context: data,\n });\n }}\n />\n </div>\n );\n })}\n\n {hasWorkflowActivePaths && (\n <>\n <hr className=\"border-border1 border-sm my-5\" />\n <div className=\"flex flex-col gap-4\">\n {Object.entries(workflowActivePaths)?.map(([stepId, { status: pathStatus, stepPath }]) => {\n return (\n <div className=\"flex flex-col gap-1\" key={stepId}>\n {stepPath?.map((path, idx) => {\n return <LegacyWorkflowStatus stepId={stepId} pathStatus={pathStatus} path={path} key={idx} />;\n })}\n </div>\n );\n })}\n </div>\n </>\n )}\n\n {result && (\n <>\n <hr className=\"border-border1 border-sm my-5\" />\n <WorkflowResult sanitizedJsonResult={sanitizedOutput} jsonResult={JSON.stringify(restResult, null, 2)} />\n </>\n )}\n </div>\n </div>\n );\n}\n","import jsonSchemaToZod from 'json-schema-to-zod';\nimport { Braces, Footprints, Loader2 } from 'lucide-react';\nimport { useState, useEffect, useContext, useId } from 'react';\nimport { parse } from 'superjson';\nimport { z } from 'zod';\n\nimport { DynamicForm } from '@/components/dynamic-form';\nimport { resolveSerializedZodOutput } from '@/components/dynamic-form/utils';\nimport { Button } from '@/ds/components/Button';\nimport { CodeBlockDemo } from '@/components/ui/code-block';\nimport { ScrollArea } from '@/components/ui/scroll-area';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Text } from '@/components/ui/text';\n\nimport { ExtendedWorkflowWatchResult } from '@/hooks/use-workflows';\nimport { WorkflowRunContext } from '../context/workflow-run-context';\nimport { toast } from 'sonner';\nimport { usePlaygroundStore } from '@/store/playground-store';\nimport { Icon } from '@/ds/icons';\nimport { Txt } from '@/ds/components/Txt';\n\nimport { GetWorkflowResponse } from '@mastra/client-js';\nimport { SyntaxHighlighter } from '@/components/ui/syntax-highlighter';\nimport { Input } from '@/components/ui/input';\nimport { Dialog, DialogPortal, DialogTitle, DialogContent } from '@/components/ui/dialog';\n\ninterface SuspendedStep {\n stepId: string;\n runId: string;\n suspendPayload: any;\n workflow?: GetWorkflowResponse;\n isLoading: boolean;\n}\n\ninterface WorkflowTriggerProps {\n workflowId: string;\n setRunId?: (runId: string) => void;\n workflow?: GetWorkflowResponse;\n isLoading?: boolean;\n createWorkflowRun: ({ workflowId, prevRunId }: { workflowId: string; prevRunId?: string }) => Promise<{\n runId: string;\n }>;\n startWorkflowRun: ({\n workflowId,\n runId,\n input,\n runtimeContext,\n }: {\n workflowId: string;\n runId: string;\n input: Record<string, unknown>;\n runtimeContext: Record<string, unknown>;\n }) => Promise<void>;\n resumeWorkflow: ({\n workflowId,\n step,\n runId,\n resumeData,\n runtimeContext,\n }: {\n workflowId: string;\n step: string | string[];\n runId: string;\n resumeData: Record<string, unknown>;\n runtimeContext: Record<string, unknown>;\n }) => Promise<{\n message: string;\n }>;\n watchWorkflow: ({ workflowId, runId }: { workflowId: string; runId: string }) => Promise<void>;\n watchResult: ExtendedWorkflowWatchResult | null;\n isWatchingWorkflow: boolean;\n isResumingWorkflow: boolean;\n}\n\nexport function WorkflowTrigger({\n workflowId,\n setRunId,\n workflow,\n isLoading,\n createWorkflowRun,\n startWorkflowRun,\n resumeWorkflow,\n watchWorkflow,\n watchResult,\n isWatchingWorkflow,\n isResumingWorkflow,\n}: WorkflowTriggerProps) {\n const { runtimeContext } = usePlaygroundStore();\n const { result, setResult, payload, setPayload } = useContext(WorkflowRunContext);\n\n const [suspendedSteps, setSuspendedSteps] = useState<SuspendedStep[]>([]);\n const [isRunning, setIsRunning] = useState(false);\n const triggerSchema = workflow?.inputSchema;\n\n const handleExecuteWorkflow = async (data: any) => {\n try {\n if (!workflow) return;\n setIsRunning(true);\n\n setResult(null);\n\n const { runId } = await createWorkflowRun({ workflowId });\n\n setRunId?.(runId);\n\n watchWorkflow({ workflowId, runId });\n\n startWorkflowRun({ workflowId, runId, input: data, runtimeContext });\n } catch (err) {\n setIsRunning(false);\n toast.error('Error executing workflow');\n }\n };\n\n const handleResumeWorkflow = async (step: SuspendedStep & { resumeData: any }) => {\n if (!workflow) return;\n\n const { stepId, runId: prevRunId, resumeData } = step;\n\n const { runId } = await createWorkflowRun({ workflowId, prevRunId });\n\n watchWorkflow({ workflowId, runId });\n\n await resumeWorkflow({\n step: stepId,\n runId,\n resumeData,\n workflowId,\n runtimeContext,\n });\n };\n\n const watchResultToUse = result ?? watchResult;\n\n useEffect(() => {\n setIsRunning(isWatchingWorkflow);\n }, [isWatchingWorkflow]);\n\n useEffect(() => {\n if (!watchResultToUse?.payload?.workflowState?.steps || !result?.runId) return;\n\n const suspended = Object.entries(watchResultToUse.payload.workflowState.steps)\n .filter(([_, { status }]) => status === 'suspended')\n .map(([stepId, { payload }]) => ({\n stepId,\n runId: result.runId,\n suspendPayload: payload,\n isLoading: false,\n }));\n setSuspendedSteps(suspended);\n }, [watchResultToUse, result]);\n\n useEffect(() => {\n if (watchResult) {\n setResult(watchResult);\n }\n }, [watchResult]);\n\n if (isLoading) {\n return (\n <ScrollArea className=\"h-[calc(100vh-126px)] pt-2 px-4 pb-4 text-xs\">\n <div className=\"space-y-4\">\n <Skeleton className=\"h-10\" />\n <Skeleton className=\"h-10\" />\n </div>\n </ScrollArea>\n );\n }\n\n if (!workflow) return null;\n\n const isSuspendedSteps = suspendedSteps.length > 0;\n\n const zodInputSchema = triggerSchema ? resolveSerializedZodOutput(jsonSchemaToZod(parse(triggerSchema))) : null;\n const { sanitizedOutput, ...restResult } = result || {};\n\n return (\n <div className=\"h-full pt-3 pb-12\">\n <div className=\"space-y-4 px-5 pb-5 border-b-sm border-border1\">\n {(isResumingWorkflow || (isSuspendedSteps && isWatchingWorkflow)) && (\n <div className=\"py-2 px-5 flex items-center gap-2 bg-surface5 -mx-5 -mt-5 border-b-sm border-border1\">\n <Icon>\n <Loader2 className=\"animate-spin text-icon6\" />\n </Icon>\n <Txt>Resuming workflow</Txt>\n </div>\n )}\n\n {!isSuspendedSteps && (\n <>\n {zodInputSchema ? (\n <DynamicForm\n schema={zodInputSchema}\n defaultValues={payload}\n isSubmitLoading={isWatchingWorkflow}\n submitButtonLabel=\"Run\"\n onSubmit={data => {\n setPayload(data);\n handleExecuteWorkflow(data);\n }}\n />\n ) : (\n <Button\n className=\"w-full\"\n variant=\"light\"\n disabled={isRunning}\n onClick={() => handleExecuteWorkflow(null)}\n >\n {isRunning ? (\n <Icon>\n <Loader2 className=\"animate-spin\" />\n </Icon>\n ) : (\n 'Trigger'\n )}\n </Button>\n )}\n </>\n )}\n\n {!isWatchingWorkflow &&\n isSuspendedSteps &&\n suspendedSteps?.map(step => {\n const stepDefinition = workflow.steps[step.stepId];\n const stepSchema = stepDefinition?.resumeSchema\n ? resolveSerializedZodOutput(jsonSchemaToZod(parse(stepDefinition.resumeSchema)))\n : z.record(z.string(), z.any());\n return (\n <div className=\"flex flex-col px-4\">\n <Text variant=\"secondary\" className=\"text-mastra-el-3\" size=\"xs\">\n {step.stepId}\n </Text>\n {step.suspendPayload && (\n <div>\n <CodeBlockDemo\n className=\"w-full overflow-x-auto p-2\"\n code={JSON.stringify(step.suspendPayload, null, 2)}\n language=\"json\"\n />\n </div>\n )}\n <DynamicForm\n schema={stepSchema}\n isSubmitLoading={isResumingWorkflow}\n submitButtonLabel=\"Resume\"\n onSubmit={data => {\n handleResumeWorkflow({\n stepId: step.stepId,\n runId: step.runId,\n suspendPayload: step.suspendPayload,\n resumeData: data,\n isLoading: false,\n });\n }}\n />\n </div>\n );\n })}\n </div>\n {result && (\n <div className=\"p-5 border-b-sm border-border1\">\n <WorkflowJsonDialog result={restResult} />\n </div>\n )}\n </div>\n );\n}\n\ninterface WorkflowResultSectionProps {\n result: ExtendedWorkflowWatchResult;\n workflow: GetWorkflowResponse;\n}\n\nconst WorkflowResultSection = ({ result, workflow }: WorkflowResultSectionProps) => {\n const workflowState = result.payload.workflowState as ExtendedWorkflowWatchResult['payload']['workflowState'] & {\n result: unknown | null;\n };\n\n const hasResult = Object.keys(workflowState.steps || {}).length > 0;\n if (!hasResult) return null;\n\n return (\n <div className=\"p-5\">\n <Txt variant=\"ui-sm\" className=\"text-icon3\">\n Final Output\n </Txt>\n <ul className=\"pt-4\">\n {Object.entries(workflowState.steps || {}).map(([stepId, stepResult]) => {\n const stepDefinition = workflow.steps[stepId];\n if (!stepDefinition) return null;\n\n return (\n <li\n key={stepId}\n className=\"border-b-sm border-dashed border-border1 last:border-b-0 py-4 first:pt-0 last:pb-0\"\n >\n <WorkflowResultFinishedStep stepResult={stepResult.output} stepDefinition={stepDefinition} />\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\ninterface WorkflowResultFinishedStepProps {\n stepResult: unknown;\n stepDefinition: GetWorkflowResponse['steps'][string];\n}\n\nconst WorkflowResultFinishedStep = ({ stepResult, stepDefinition }: WorkflowResultFinishedStepProps) => {\n const id = useId();\n\n try {\n const zodObjectSchema = resolveSerializedZodOutput(jsonSchemaToZod(parse(stepDefinition.outputSchema)));\n\n if (zodObjectSchema?._def?.typeName === 'ZodString') {\n return (\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <Icon>\n <Footprints className=\"text-icon3\" />\n </Icon>\n\n <Txt as=\"label\" htmlFor={id} variant=\"ui-sm\" className=\"text-icon3\">\n {stepDefinition.description || stepDefinition.id}\n </Txt>\n </div>\n <Input id={id} defaultValue={stepResult as string} readOnly />\n </div>\n );\n }\n\n return (\n <div>\n <div className=\"flex items-center gap-2 pb-2\">\n <Icon>\n <Footprints className=\"text-icon3\" />\n </Icon>\n <Txt variant=\"ui-sm\" className=\"text-icon3\">\n {stepDefinition.description || stepDefinition.id}\n </Txt>\n </div>\n <DynamicForm\n key={JSON.stringify(stepResult)}\n schema={zodObjectSchema}\n defaultValues={stepResult as Record<string, unknown>}\n readOnly\n />\n </div>\n );\n } catch (err: unknown) {\n console.error('Error parsing output schema', err);\n return <Txt>An error occured. Please open an issue on GitHub.</Txt>;\n }\n};\n\nconst WorkflowJsonDialog = ({ result }: { result: Record<string, unknown> }) => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <Button variant=\"light\" onClick={() => setOpen(true)} className=\"w-full\" size=\"lg\">\n <Icon>\n <Braces className=\"text-icon3\" />\n </Icon>\n Open Workflow Execution (JSON)\n </Button>\n\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogPortal>\n <DialogContent className=\"max-w-6xl max-h-[90vh] overflow-y-auto overflow-x-hidden bg-surface2\">\n <DialogTitle>Workflow Execution (JSON)</DialogTitle>\n <div className=\"w-full h-full overflow-x-scroll\">\n <SyntaxHighlighter data={result} className=\"p-4\" />\n </div>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n </>\n );\n};\n","import { Skeleton } from '@/components/ui/skeleton';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate } from 'date-fns';\nimport clsx from 'clsx';\nimport { WorkflowRun } from '@mastra/core';\n\nexport interface WorkflowRunsProps {\n workflowId: string;\n runId?: string;\n isLoading: boolean;\n runs: WorkflowRun[];\n onPressRun: ({ workflowId, runId }: { workflowId: string; runId: string }) => void;\n}\n\nexport const WorkflowRuns = ({ workflowId, runId, isLoading, runs, onPressRun }: WorkflowRunsProps) => {\n if (isLoading) {\n return (\n <div className=\"p-4\">\n <Skeleton className=\"h-[600px]\" />\n </div>\n );\n }\n\n if (runs.length === 0) {\n return (\n <div className=\"p-4\">\n <Txt variant=\"ui-md\" className=\"text-icon6 text-center\">\n No previous run\n </Txt>\n </div>\n );\n }\n\n return (\n <ol className=\"pb-10\">\n {runs.map(run => (\n <li key={run.runId}>\n <button\n onClick={() => onPressRun({ workflowId, runId: run.runId })}\n className={clsx('px-3 py-2 border-b-sm border-border1 block w-full hover:bg-surface4 text-left', {\n 'bg-surface4': run.runId === runId,\n })}\n >\n <Txt variant=\"ui-lg\" className=\"font-medium text-icon6 truncate\" as=\"p\">\n {run.runId}\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"font-medium text-icon3 truncate\" as=\"p\">\n {typeof run?.snapshot === 'string'\n ? ''\n : run?.snapshot?.timestamp\n ? formatDate(run?.snapshot?.timestamp, 'MMM d, yyyy h:mm a')\n : ''}\n </Txt>\n </button>\n </li>\n ))}\n </ol>\n );\n};\n","'use client';\n\nimport {\n ColumnDef as ReactTableColumnDef,\n flexRender,\n getCoreRowModel,\n PaginationState,\n SortingState,\n useReactTable,\n} from '@tanstack/react-table';\nimport { useState } from 'react';\n\nimport { Button } from '@/components/ui/button';\nimport { Table, Tbody, Cell, Th, Thead, Row } from '@/ds/components/Table';\n\nimport { PaginationResult } from '@/lib/pagination/types';\nimport { Skeleton } from './skeleton';\n\nexport interface DataTableProps<TData, TValue> {\n /**\n * table columns\n */\n columns: ReactTableColumnDef<TData, TValue>[];\n /**\n * table data\n */\n data: TData[];\n\n pagination?: PaginationResult;\n /**\n * goto next page\n */\n gotoNextPage?: () => void;\n /**\n * goto previous page\n */\n gotoPreviousPage?: () => void;\n\n /**\n * get the row id\n */\n getRowId?: (row: TData) => string;\n\n /**\n * selected row id to use for row selection\n */\n selectedRowId?: string;\n\n /**\n * loading state\n */\n isLoading?: boolean;\n\n /**\n * text to display when there are no results\n */\n emptyText?: string;\n onClick?: (row: TData) => void;\n}\n\nexport const DataTable = <TData, TValue>({\n columns,\n data,\n pagination,\n gotoNextPage,\n gotoPreviousPage,\n getRowId,\n selectedRowId,\n isLoading,\n emptyText,\n onClick,\n}: DataTableProps<TData, TValue>) => {\n const [sorting, setSorting] = useState<SortingState>([]);\n const [{ pageIndex, pageSize }, setPagination] = useState<PaginationState>({\n pageIndex: pagination ? Math.floor(pagination.offset / pagination.limit) : 0,\n pageSize: pagination?.limit ?? 10,\n });\n const [rowSelection, setRowSelection] = useState({});\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: true,\n pageCount: pagination ? Math.ceil(pagination.total / pagination.limit) : -1,\n state: {\n sorting,\n pagination: {\n pageIndex,\n pageSize,\n },\n rowSelection,\n },\n getRowId,\n onPaginationChange: setPagination,\n onSortingChange: setSorting,\n enableRowSelection: true,\n enableMultiRowSelection: false,\n onRowSelectionChange: setRowSelection,\n });\n\n const emptyNode = (\n <Row>\n <Cell colSpan={columns.length}>\n <div className=\"py-12 text-center w-full\">No {emptyText || 'results'}</div>\n </Cell>\n </Row>\n );\n\n const ths = table.getHeaderGroups()[0];\n const rows = table.getRowModel().rows;\n\n return (\n <div>\n <Table>\n <Thead className=\"sticky top-0 bg-surface2\">\n {ths.headers.map(header => {\n const size = header.column.getSize();\n const meta = header.column.columnDef.meta as { width?: string };\n\n return (\n <Th key={header.id} style={{ width: meta?.width || size || 'auto' }}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </Th>\n );\n })}\n </Thead>\n <Tbody>\n {isLoading ? (\n <>\n {Array.from({ length: 3 }).map((_, rowIndex) => (\n <Row key={rowIndex} onClick={() => {}}>\n {Array.from({ length: columns.length }).map((_, cellIndex) => (\n <Cell key={`row-${rowIndex}-cell-${cellIndex}`}>\n <Skeleton className=\"h-4 w-1/2\" />\n </Cell>\n ))}\n </Row>\n ))}\n </>\n ) : rows?.length > 0 ? (\n rows.map(row => (\n <Row\n key={row.id}\n data-state={(row.getIsSelected() || row.id === selectedRowId) && 'selected'}\n onClick={() => onClick?.(row.original)}\n >\n {row.getVisibleCells().map(cell => flexRender(cell.column.columnDef.cell, cell.getContext()))}\n </Row>\n ))\n ) : (\n emptyNode\n )}\n </Tbody>\n </Table>\n\n {pagination && (\n <div className=\"mt-4 flex items-center justify-between px-2\">\n <div className=\"text-muted-foreground text-sm\">\n Showing {pagination.offset + 1} to {Math.min(pagination.offset + data.length, pagination.total)} of{' '}\n {pagination.total} results\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"flex items-center space-x-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={gotoPreviousPage} disabled={!pagination.offset}>\n Previous\n </Button>\n <Button variant=\"outline\" size=\"sm\" onClick={gotoNextPage} disabled={!pagination.hasMore}>\n Next\n </Button>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n};\n","import { cn } from '@/lib/utils';\n\nexport function MainContentLayout({\n children,\n className,\n style,\n}: {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}) {\n const devStyleRequested = devUIStyleRequested('MainContentLayout');\n\n return (\n <main\n className={cn(`grid grid-rows-[auto_1fr] h-full items-start content-start`, className)}\n style={{ ...style, ...(devStyleRequested ? { border: '3px dotted red' } : {}) }}\n >\n {children}\n </main>\n );\n}\n\nexport function MainContentContent({\n children,\n className,\n isCentered = false,\n isDivided = false,\n hasLeftServiceColumn = false,\n style,\n}: {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n // content is centered in the middle of the page e.g. for empty state\n isCentered?: boolean;\n // content is split into two columns equal width columns\n isDivided?: boolean;\n // used when the left column is a service column (e.g. agent history nav)\n hasLeftServiceColumn?: boolean;\n}) {\n const devStyleRequested = devUIStyleRequested('MainContentContent');\n\n return (\n <div\n className={cn(\n `grid overflow-y-auto h-full `,\n `overflow-x-auto min-w-[min-content]`,\n {\n 'items-start content-start': !isCentered && !isDivided && !hasLeftServiceColumn,\n 'grid place-items-center': isCentered,\n 'grid-cols-[1fr_1fr]': isDivided && !hasLeftServiceColumn,\n 'grid-cols-[auto_1fr_1fr]': isDivided && hasLeftServiceColumn,\n 'grid-cols-[auto_1fr]': !isDivided && hasLeftServiceColumn,\n },\n className,\n )}\n style={{ ...style, ...(devStyleRequested ? { border: '3px dotted orange' } : {}) }}\n >\n {children}\n </div>\n );\n}\n\nfunction devUIStyleRequested(name: string) {\n try {\n const raw = localStorage.getItem('add-dev-style-to-components');\n if (!raw) return false;\n\n const components = raw\n .split(',')\n .map(c => c.trim())\n .filter(Boolean); // remove empty strings\n\n return components.includes(name);\n } catch (error) {\n console.error('Error reading or parsing localStorage:', error);\n return false;\n }\n}\n","import { Button } from '@/ds/components/Button';\nimport { Icon } from '@/ds/icons/Icon';\nimport clsx from 'clsx';\nimport { X } from 'lucide-react';\nimport { ElementType } from 'react';\n\nexport interface ThreadsProps {\n children: React.ReactNode;\n}\n\nexport const Threads = ({ children }: ThreadsProps) => {\n return <nav className=\"bg-surface2 border-r-sm border-border1 min-h-full overflow-hidden\">{children}</nav>;\n};\n\nexport interface ThreadLinkProps {\n children: React.ReactNode;\n as?: ElementType;\n href?: string;\n className?: string;\n prefetch?: boolean;\n to?: string;\n}\n\nexport const ThreadLink = ({ children, as: Component = 'a', href, className, prefetch, to }: ThreadLinkProps) => {\n return (\n <Component\n href={href}\n prefetch={prefetch}\n to={to}\n className={clsx('text-ui-sm flex h-full w-full flex-col justify-center font-medium', className)}\n >\n {children}\n </Component>\n );\n};\n\nexport interface ThreadListProps {\n children: React.ReactNode;\n}\n\nexport const ThreadList = ({ children }: ThreadListProps) => {\n return <ol>{children}</ol>;\n};\n\nexport interface ThreadItemProps {\n children: React.ReactNode;\n isActive?: boolean;\n}\n\nexport const ThreadItem = ({ children, isActive }: ThreadItemProps) => {\n return (\n <li\n className={clsx(\n 'border-b-sm border-border1 hover:bg-surface3 group flex h-[54px] items-center justify-between gap-2 pl-5 py-2',\n isActive && 'bg-surface4',\n )}\n >\n {children}\n </li>\n );\n};\n\nexport interface ThreadDeleteButtonProps {\n onClick: () => void;\n}\n\nexport const ThreadDeleteButton = ({ onClick }: ThreadDeleteButtonProps) => {\n return (\n <Button\n className=\"shrink-0 border-none bg-transparent opacity-0 transition-all group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onClick}\n >\n <Icon>\n <X aria-label=\"delete thread\" className=\"text-icon3\" />\n </Icon>\n </Button>\n );\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { SlashIcon } from '../../icons/SlashIcon';\n\nexport interface BreadcrumbProps {\n children?: React.ReactNode;\n label?: string;\n}\n\nexport const Breadcrumb = ({ children, label }: BreadcrumbProps) => {\n return (\n <nav aria-label={label}>\n <ol className=\"gap-sm flex items-center\">{children}</ol>\n </nav>\n );\n};\n\nexport interface CrumbProps {\n isCurrent?: boolean;\n as: React.ElementType;\n className?: string;\n to: string;\n prefetch?: boolean | null;\n children: React.ReactNode;\n}\n\nexport const Crumb = ({ className, as, isCurrent, ...props }: CrumbProps) => {\n const Root = as || 'span';\n\n return (\n <>\n <li className=\"flex h-full items-center\">\n <Root\n aria-current={isCurrent ? 'page' : undefined}\n className={clsx('text-ui-lg leading-ui-lg font-medium', isCurrent ? 'text-white' : 'text-icon3', className)}\n {...props}\n />\n </li>\n {!isCurrent && (\n <li role=\"separator\" className=\"flex h-full items-center\">\n <Icon className=\"text-icon3\">\n <SlashIcon />\n </Icon>\n </li>\n )}\n </>\n );\n};\n","import React from 'react';\n\nexport const DarkLogo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"100\" height=\"100\" viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M49.9996 13.1627C29.6549 13.1627 13.1622 29.6553 13.1622 50.0001C13.1622 70.3449 29.6549 86.8375 49.9996 86.8375C70.3444 86.8375 86.8371 70.3449 86.8371 50.0001C86.8371 29.6553 70.3444 13.1627 49.9996 13.1627ZM10 50.0001C10 27.9089 27.9084 10.0005 49.9996 10.0005C72.0908 10.0005 89.9992 27.9089 89.9992 50.0001C89.9992 72.0913 72.0908 89.9997 49.9996 89.9997C27.9084 89.9997 10 72.0913 10 50.0001Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M43.3709 19.4582C35.493 17.9055 28.4985 19.4076 23.954 23.9521C19.4094 28.4967 17.9073 35.4911 19.46 43.3691C21.0103 51.235 25.5889 59.7924 32.8993 67.1028C40.2097 74.4132 48.7671 78.9918 56.633 80.5421C64.511 82.0948 71.5054 80.5927 76.05 76.0481C80.5945 71.5036 82.0966 64.5091 80.5439 56.6312C78.9936 48.7653 74.415 40.2079 67.1046 32.8975C59.7942 25.5871 51.2368 21.0085 43.3709 19.4582ZM43.9824 16.3557C52.5432 18.043 61.6476 22.9685 69.3406 30.6615C77.0336 38.3545 81.9591 47.4589 83.6464 56.0197C85.3313 64.5685 83.8044 72.7657 78.286 78.2841C72.7675 83.8026 64.5704 85.3295 56.0216 83.6446C47.4607 81.9573 38.3563 77.0317 30.6633 69.3388C22.9704 61.6458 18.0448 52.5414 16.3575 43.9805C14.6726 35.4317 16.1995 27.2346 21.718 21.7161C27.2364 16.1977 35.4336 14.6708 43.9824 16.3557Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M65.8864 51.719H34.314V48.5568H65.8864V51.719Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M59.2351 43.2352L43.194 59.2763L40.958 57.0403L56.9991 40.9992L59.2351 43.2352Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M43.1969 40.9992L59.2379 57.0403L57.002 59.2763L40.9609 43.2352L43.1969 40.9992Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M23.7151 33.0924C17.0466 37.565 13.1629 43.573 13.1629 49.9999C13.1629 56.4269 17.0466 62.4349 23.7151 66.9075C30.3734 71.3733 39.662 74.1867 50.0004 74.1867C60.3388 74.1867 69.6274 71.3733 76.2857 66.9075C82.9541 62.4349 86.8378 56.4269 86.8378 49.9999C86.8378 43.573 82.9541 37.565 76.2857 33.0924C69.6274 28.6266 60.3388 25.8132 50.0004 25.8132C39.662 25.8132 30.3734 28.6266 23.7151 33.0924ZM21.9537 30.4662C29.2002 25.6059 39.1209 22.651 50.0004 22.651C60.8799 22.651 70.8006 25.6059 78.0471 30.4662C85.2834 35.3197 90 42.1957 90 49.9999C90 57.8042 85.2834 64.6802 78.0471 69.5337C70.8006 74.394 60.8799 77.3489 50.0004 77.3489C39.1209 77.3489 29.2002 74.394 21.9537 69.5337C14.7174 64.6802 10.0008 57.8042 10.0008 49.9999C10.0008 42.1957 14.7174 35.3197 21.9537 30.4662Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import { Icon } from '@/ds/icons';\nimport { Txt } from '../Txt';\nimport clsx from 'clsx';\n\nexport interface EntityProps {\n children: React.ReactNode;\n className?: string;\n onClick?: () => void;\n}\n\nexport const Entity = ({ children, className, onClick }: EntityProps) => {\n return (\n <div\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={e => {\n if (!onClick) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick?.();\n }\n }}\n className={clsx(\n 'flex gap-3 group/entity bg-surface3 rounded-lg border-sm border-border1 py-3 px-4',\n onClick && 'cursor-pointer hover:bg-surface4 transition-all',\n className,\n )}\n onClick={onClick}\n >\n {children}\n </div>\n );\n};\n\nexport const EntityIcon = ({ children, className }: EntityProps) => {\n return (\n <Icon size=\"lg\" className={clsx('text-icon3 mt-1', className)}>\n {children}\n </Icon>\n );\n};\n\nexport const EntityName = ({ children, className }: EntityProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-lg\" className={clsx('text-icon6 font-medium', className)}>\n {children}\n </Txt>\n );\n};\n\nexport const EntityDescription = ({ children, className }: EntityProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className={clsx('text-icon3', className)}>\n {children}\n </Txt>\n );\n};\n\nexport const EntityContent = ({ children, className }: EntityProps) => {\n return <div className={className}>{children}</div>;\n};\n","import React, { ElementType, ReactNode } from 'react';\n\nimport { Txt } from '../Txt';\n\nexport interface EmptyStateProps {\n as?: ElementType;\n iconSlot: ReactNode;\n titleSlot: ReactNode;\n descriptionSlot: ReactNode;\n actionSlot: ReactNode;\n}\n\nexport const EmptyState = ({\n iconSlot,\n titleSlot,\n descriptionSlot,\n actionSlot,\n as: Component = 'div',\n}: EmptyStateProps) => {\n return (\n <div className=\"flex w-[340px] flex-col items-center justify-center text-center\">\n <div className=\"h-auto [&>svg]:w-[126px]\">{iconSlot}</div>\n <Component className=\"text-icon6 pt-[34px] font-serif text-[1.75rem] font-semibold\">{titleSlot}</Component>\n\n <Txt variant=\"ui-lg\" className=\"text-icon3 pb-[34px]\">\n {descriptionSlot}\n </Txt>\n\n {actionSlot}\n </div>\n );\n};\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nexport interface PollingOptions<TData, TError = Error> {\n /** Async function that fetches the data */\n fetchFn: () => Promise<TData>;\n /** Polling interval in milliseconds */\n interval?: number;\n /** Whether polling is enabled initially */\n enabled?: boolean;\n /** Callback function called with new data */\n onSuccess?: (data: TData) => void;\n /** Callback function called on error */\n onError?: (error: TError) => void;\n /** Function to determine if polling should continue */\n shouldContinue?: (data: TData) => boolean;\n /** Restarts the polling when true */\n restartPolling?: boolean;\n}\n\nexport interface PollingResult<TData, TError> {\n /** Current polling status */\n isPolling: boolean;\n /** Loading state for current request */\n isLoading: boolean;\n /** Loading state for first call */\n firstCallLoading: boolean;\n /** Current error state */\n error: TError | null;\n /** Latest data received */\n data: TData | null;\n /** Function to start polling */\n startPolling: () => void;\n /** Function to stop polling */\n stopPolling: () => void;\n\n /** Refetch the data on demand with/without polling. default is false */\n refetch: (withPolling?: boolean) => void;\n}\n\nexport function usePolling<TData, TError = Error>({\n fetchFn,\n interval = 3000,\n enabled = false,\n onSuccess,\n onError,\n shouldContinue = () => true,\n restartPolling = false,\n}: PollingOptions<TData, TError>): PollingResult<TData, TError> {\n const [isPolling, setIsPolling] = useState(enabled);\n const [error, setError] = useState<TError | null>(null);\n const [data, setData] = useState<TData | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [firstCallLoading, setFirstCallLoading] = useState(false);\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n const mountedRef = useRef(true);\n const [restart, setRestart] = useState(restartPolling);\n\n const cleanup = useCallback(() => {\n console.log('cleanup');\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n }, []);\n\n const stopPolling = useCallback(() => {\n console.log('stopPolling');\n setIsPolling(false);\n cleanup();\n }, [cleanup]);\n\n const startPolling = useCallback(() => {\n console.log('startPolling');\n setIsPolling(true);\n setError(null);\n }, []);\n\n const executePoll = useCallback(\n async (refetch: boolean = true) => {\n // Check if component is still mounted\n if (!mountedRef.current) return;\n setIsLoading(true);\n\n try {\n const result = await fetchFn();\n\n setData(result);\n setError(null);\n onSuccess?.(result);\n\n // Check if we should continue polling\n if (shouldContinue(result) && refetch) {\n timeoutRef.current = setTimeout(executePoll, interval);\n } else {\n stopPolling();\n }\n } catch (err) {\n if (!mountedRef.current) return;\n setError(err as TError);\n onError?.(err as TError);\n stopPolling();\n } finally {\n if (mountedRef.current) {\n setFirstCallLoading(false);\n setIsLoading(false);\n }\n }\n },\n [fetchFn, interval, onSuccess, onError, shouldContinue, stopPolling],\n );\n\n const refetch = useCallback(\n (withPolling: boolean = false) => {\n console.log('refetch', { withPolling });\n if (withPolling) {\n setIsPolling(true);\n } else {\n executePoll(false);\n }\n setError(null);\n },\n [executePoll],\n );\n\n useEffect(() => {\n mountedRef.current = true;\n\n if (enabled && isPolling) {\n executePoll(true);\n }\n\n return () => {\n console.log('cleanup poll');\n mountedRef.current = false;\n cleanup();\n };\n }, [enabled, isPolling, executePoll, cleanup]);\n\n useEffect(() => {\n setRestart(restartPolling);\n }, [restartPolling]);\n\n useEffect(() => {\n if (restart && !isPolling) {\n setIsPolling(true);\n executePoll();\n setRestart(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [restart]);\n\n return {\n isPolling,\n isLoading,\n error,\n data,\n startPolling,\n stopPolling,\n firstCallLoading,\n refetch,\n };\n}\n\nexport default usePolling;\n"],"names":["Button","SyntaxHighlighter","useCopyToClipboard","CheckIcon","memoizeMarkdownComponents","variantClasses","Badge","useCodemirrorTheme","t","ToolFallback","AssistantActionBar","src","TooltipProvider","React","ThreadWrapper","ThreadWelcome","EditComposer","Composer","SpeechInput","ComposerAction","CircleStopIcon","convertMessage","message","defaultModelSettings","chatWithGenerate","modelSettings","Table","groupEvals","groups","nextTrace","span","prevTrace","SpanComponent","tokens","str","group","step","layoutedNodes","layoutedEdges","initial","stepsList","Fragment","run","id","uuid","currentState","label","stepGraph","stepSubscriberGraph","value","key","field","BaseAutoForm","props","schema","z","CodeBlock","payload","_","refetch"],"mappings":"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","x_google_ignoreList":[2,3,4]}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/lib/mastra-client.ts","../src/contexts/mastra-client-context.tsx","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","../../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/utils.ts","../src/components/ui/button.tsx","../src/components/ui/tooltip.tsx","../src/components/assistant-ui/tooltip-icon-button.tsx","../src/components/ui/avatar.tsx","../src/components/assistant-ui/image-with-fallback.tsx","../src/components/assistant-ui/markdown-text.tsx","../src/ds/icons/Icon.tsx","../src/ds/components/Badge/Badge.tsx","../src/ds/icons/AgentIcon.tsx","../src/ds/icons/AgentCoinIcon.tsx","../src/ds/icons/AiIcon.tsx","../src/ds/icons/ApiIcon.tsx","../src/ds/icons/BranchIcon.tsx","../src/ds/icons/CheckIcon.tsx","../src/ds/icons/ChevronIcon.tsx","../src/ds/icons/CommitIcon.tsx","../src/ds/icons/CrossIcon.tsx","../src/ds/icons/DbIcon.tsx","../src/ds/icons/DebugIcon.tsx","../src/ds/icons/DeploymentIcon.tsx","../src/ds/icons/DividerIcon.tsx","../src/ds/icons/DocsIcon.tsx","../src/ds/icons/EnvIcon.tsx","../src/ds/icons/EvaluatorCoinIcon.tsx","../src/ds/icons/FiltersIcon.tsx","../src/ds/icons/GithubCoinIcon.tsx","../src/ds/icons/GithubIcon.tsx","../src/ds/icons/GoogleIcon.tsx","../src/ds/icons/RepoIcon.tsx","../src/ds/icons/HomeIcon.tsx","../src/ds/icons/InfoIcon.tsx","../src/ds/icons/JudgeIcon.tsx","../src/ds/icons/LogsIcon.tsx","../src/ds/icons/MemoryIcon.tsx","../src/ds/icons/OpenAIIcon.tsx","../src/ds/icons/PromptIcon.tsx","../src/ds/icons/ScoreIcon.tsx","../src/ds/icons/SettingsIcon.tsx","../src/ds/icons/SlashIcon.tsx","../src/ds/icons/ToolsIcon.tsx","../src/ds/icons/TraceIcon.tsx","../src/ds/icons/TsIcon.tsx","../src/ds/icons/VariablesIcon.tsx","../src/ds/icons/WorkflowIcon.tsx","../src/ds/icons/WorkflowCoinIcon.tsx","../src/ds/icons/LatencyIcon.tsx","../src/ds/icons/McpServerIcon.tsx","../src/ds/icons/FolderIcon.tsx","../src/ds/icons/McpCoinIcon.tsx","../src/ds/icons/ToolCoinIcon.tsx","../src/ds/icons/AgentNetworkCoinIcon.tsx","../src/hooks/use-copy-to-clipboard.ts","../src/components/ui/copy-button.tsx","../src/components/ui/syntax-highlighter.tsx","../src/components/assistant-ui/tool-fallback.tsx","../src/components/assistant-ui/assistant-message.tsx","../src/components/ui/dialog.tsx","../src/components/assistant-ui/use-has-attachments.ts","../src/components/assistant-ui/attachment.tsx","../src/components/assistant-ui/user-message.tsx","../src/hooks/use-autoscroll.tsx","../src/ds/components/Txt/Txt.tsx","../src/hooks/use-speech-recognition.ts","../src/components/assistant-ui/thread.tsx","../src/lib/file.ts","../src/components/assistant-ui/attachment-adapters/pdfs-adapter.ts","../src/services/mastra-runtime-provider.tsx","../src/domains/agents/hooks/use-agent-model-settings-state.ts","../src/domains/agents/context/agent-context.tsx","../src/store/playground-store.ts","../src/domains/agents/components/agent-chat.tsx","../src/components/ui/badge.tsx","../src/components/ui/copyable-content.tsx","../src/components/ui/formatted-date.tsx","../src/components/ui/input.tsx","../src/components/ui/score-indicator.tsx","../src/components/ui/table.tsx","../src/components/ui/tabs.tsx","../src/domains/agents/components/agent-evals.tsx","../src/domains/traces/context/trace-context.tsx","../src/ds/components/Table/Table.tsx","../src/ds/components/Table/utils.ts","../src/ds/components/Table/Cells.tsx","../src/domains/traces/hooks/use-open-trace.ts","../src/lib/number.ts","../src/domains/traces/traces-table.tsx","../src/hooks/use-resize-column.ts","../src/domains/resizable-panel.tsx","../src/ds/components/Button/Button.tsx","../src/ds/components/TraceTree/TraceTree.tsx","../src/ds/components/TraceTree/Time.tsx","../src/ds/components/TraceTree/Span.tsx","../src/ds/components/TraceTree/Spans.tsx","../src/ds/components/TraceTree/Trace.tsx","../src/domains/traces/utils/getSpanVariant.ts","../src/domains/traces/utils/createSpanTree.ts","../src/domains/traces/trace-span-view.tsx","../src/ds/components/Header/Header.tsx","../src/domains/traces/trace-details.tsx","../src/components/syntax-highlighter.tsx","../src/domains/traces/utils.ts","../src/domains/traces/trace-span-details.tsx","../src/domains/traces/traces-sidebar.tsx","../src/domains/agents/components/agent-traces.tsx","../src/components/ui/slider.tsx","../src/components/ui/label.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/entry.tsx","../src/components/ui/collapsible.tsx","../src/domains/agents/components/agent-advanced-settings.tsx","../src/domains/agents/components/agent-model-settings.tsx","../src/services/network-runtime-provider.tsx","../src/components/ui/markdown-renderer.tsx","../src/domains/networks/tool-fallback.tsx","../src/domains/networks/network-context.tsx","../src/domains/networks/network-chat.tsx","../src/services/vnext-network-chat-provider.tsx","../src/components/ui/spinner.tsx","../src/domains/workflows/workflow/workflow-clock.tsx","../src/components/ui/skeleton.tsx","../src/lib/string.ts","../src/domains/workflows/workflow/utils.ts","../src/components/ui/text.tsx","../src/components/ui/scroll-area.tsx","../src/domains/workflows/utils.ts","../src/domains/workflows/context/workflow-run-context.tsx","../src/domains/workflows/context/use-current-run.tsx","../src/domains/workflows/workflow/workflow-code-dialog-content.tsx","../src/domains/workflows/workflow/workflow-step-action-bar.tsx","../src/domains/workflows/workflow/workflow-condition-node.tsx","../src/domains/workflows/workflow/workflow-default-node.tsx","../src/domains/workflows/workflow/workflow-after-node.tsx","../src/domains/workflows/workflow/workflow-loop-result-node.tsx","../src/domains/workflows/workflow/zoom-slider.tsx","../src/domains/workflows/workflow/workflow-nested-graph.tsx","../src/domains/workflows/context/workflow-nested-graph-context.tsx","../src/domains/workflows/workflow/workflow-nested-node.tsx","../src/domains/workflows/workflow/workflow-graph-inner.tsx","../src/domains/workflows/workflow/workflow-graph.tsx","../src/hooks/use-workflow-runs.ts","../src/hooks/use-workflows.ts","../src/domains/networks/v-next/step-dropdown.tsx","../src/domains/networks/v-next/wrapped-assistant-message.tsx","../src/components/assistant-ui/network-threads.tsx","../src/services/vnext-message-provider.tsx","../src/lib/formatting.ts","../src/services/vnext-network-runtime-provider.tsx","../src/domains/networks/v-next/network-chat.tsx","../src/domains/workflows/workflow/workflow-traces.tsx","../src/domains/workflows/workflow/legacy-workflow-nested-graph.tsx","../src/domains/workflows/context/legacy-workflow-nested-graph-context.tsx","../src/domains/workflows/workflow/legacy-workflow-nested-node.tsx","../src/domains/workflows/workflow/legacy-workflow-graph-inner.tsx","../src/domains/workflows/workflow/legacy-workflow-graph.tsx","../src/components/ui/autoform/components/Form.tsx","../src/components/ui/autoform/components/FieldWrapper.tsx","../src/components/ui/alert.tsx","../src/components/ui/autoform/components/ErrorMessage.tsx","../src/components/ui/autoform/components/SubmitButton.tsx","../src/components/ui/autoform/components/StringField.tsx","../src/components/ui/autoform/components/NumberField.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/autoform/components/BooleanField.tsx","../src/components/ui/calendar.tsx","../src/components/ui/popover.tsx","../src/components/ui/date-picker.tsx","../src/components/ui/autoform/components/DateField.tsx","../src/components/ui/select.tsx","../src/components/ui/autoform/components/SelectField.tsx","../src/components/ui/autoform/components/ObjectWrapper.tsx","../src/components/ui/autoform/components/ArrayWrapper.tsx","../src/components/ui/autoform/components/ArrayElementWrapper.tsx","../src/components/ui/autoform/components/RecordField.tsx","../src/components/ui/autoform/AutoForm.tsx","../src/components/ui/autoform/utils.ts","../src/components/ui/autoform/zodProvider/field-type-inference.ts","../src/components/ui/autoform/zodProvider/index.tsx","../src/components/dynamic-form/index.tsx","../src/components/dynamic-form/utils.ts","../src/components/ui/code-block.tsx","../src/domains/workflows/workflow/workflow-card.tsx","../src/domains/workflows/workflow/legacy-workflow-status.tsx","../src/domains/workflows/workflow/workflow-result.tsx","../src/domains/workflows/workflow/legacy-workflow-trigger.tsx","../src/domains/workflows/workflow/workflow-status.tsx","../src/domains/workflows/workflow/workflow-trigger.tsx","../src/domains/workflows/runs/workflow-runs.tsx","../src/components/ui/data-table.tsx","../src/components/ui/containers/MainContent.tsx","../src/components/threads.tsx","../src/ds/components/Breadcrumb/Breadcrumb.tsx","../src/ds/components/Logo/MastraLogo.tsx","../src/ds/components/Entity/Entity.tsx","../src/ds/components/EmptyState/EmptyState.tsx","../src/lib/polls.ts"],"sourcesContent":["import { MastraClient } from '@mastra/client-js';\n\nexport const createMastraClient = (baseUrl?: string, mastraClientHeaders: Record<string, string> = {}) => {\n return new MastraClient({\n baseUrl: baseUrl || '',\n // only add the header if the baseUrl is not provided i.e it's a local dev environment\n headers: !baseUrl ? { ...mastraClientHeaders, 'x-mastra-dev-playground': 'true' } : mastraClientHeaders,\n });\n};\n","import React, { createContext, useContext, ReactNode } from 'react';\nimport { MastraClient } from '@mastra/client-js';\nimport { createMastraClient } from '@/lib/mastra-client';\n\ntype MastraClientContextType = {\n client: MastraClient;\n};\n\nconst MastraClientContext = createContext<MastraClientContextType | undefined>(undefined);\n\nexport const MastraClientProvider = ({\n children,\n baseUrl,\n headers,\n}: {\n children: ReactNode;\n baseUrl?: string;\n headers?: Record<string, string>;\n}) => {\n const client = createMastraClient(baseUrl, headers);\n\n return <MastraClientContext.Provider value={{ client }}>{children}</MastraClientContext.Provider>;\n};\n\nexport const useMastraClient = () => {\n const context = useContext(MastraClientContext);\n if (context === undefined) {\n throw new Error('useMastraClient must be used within a MastraClientProvider');\n }\n return context.client;\n};\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n outline: 'border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-md px-3 text-xs',\n lg: 'h-10 rounded-md px-8',\n icon: 'h-9 w-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n return <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />;\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","'use client';\n\nimport { forwardRef } from 'react';\n\nimport { Button, ButtonProps } from '@/components/ui/button';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { cn } from '@/lib/utils';\n\nexport type TooltipIconButtonProps = ButtonProps & {\n tooltip: string;\n side?: 'top' | 'bottom' | 'left' | 'right';\n};\n\nexport const TooltipIconButton = forwardRef<HTMLButtonElement, TooltipIconButtonProps>(\n ({ children, tooltip, side = 'bottom', className, ...rest }, ref) => {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" {...rest} className={cn('size-6 p-1', className)} ref={ref}>\n {children}\n <span className=\"sr-only\">{tooltip}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent side={side}>{tooltip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n },\n);\n\nTooltipIconButton.displayName = 'TooltipIconButton';\n","import * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', className)}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image ref={ref} className={cn('aspect-square h-full w-full', className)} {...props} />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn('flex h-full w-full items-center justify-center rounded-full bg-muted', className)}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import { ImgHTMLAttributes, useEffect, useState } from 'react';\n\nexport const ImageWithFallback = ({ alt, src, ...rest }: ImgHTMLAttributes<HTMLImageElement>) => {\n const [error, setError] = useState(false);\n\n useEffect(() => {\n setError(false);\n }, [src]);\n\n return error || !src ? (\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n width=\"150\"\n height=\"150\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z\"\n />\n </svg>\n <p className=\"text-xs italic text-muted-foreground -mt-[0.625rem] mb-[0.625rem]\">Image link is broken</p>\n </div>\n ) : (\n <img\n src={src}\n alt={alt}\n {...rest}\n onError={() => {\n setError(true);\n }}\n />\n );\n};\n","'use client';\n\nimport {\n CodeHeaderProps,\n MarkdownTextPrimitive,\n unstable_memoizeMarkdownComponents as memoizeMarkdownComponents,\n useIsMarkdownCodeBlock,\n} from '@assistant-ui/react-markdown';\nimport '@assistant-ui/react-markdown/styles/dot.css';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { FC, memo, useState } from 'react';\nimport remarkGfm from 'remark-gfm';\nimport { makePrismAsyncSyntaxHighlighter } from '@assistant-ui/react-syntax-highlighter';\nimport { coldarkDark } from 'react-syntax-highlighter/dist/cjs/styles/prism';\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { cn } from '@/lib/utils';\nimport { ImageWithFallback } from './image-with-fallback';\n\nconst SyntaxHighlighter = makePrismAsyncSyntaxHighlighter({\n style: coldarkDark,\n customStyle: {\n margin: 0,\n backgroundColor: 'black',\n },\n});\n\nconst MarkdownTextImpl = () => {\n return <MarkdownTextPrimitive remarkPlugins={[remarkGfm]} className=\"aui-md\" components={defaultComponents} />;\n};\n\nexport const MarkdownText = memo(MarkdownTextImpl);\n\nconst CodeHeader: FC<CodeHeaderProps> = ({ language, code }) => {\n const { isCopied, copyToClipboard } = useCopyToClipboard();\n const onCopy = () => {\n if (!code || isCopied) return;\n copyToClipboard(code);\n };\n\n return (\n <div\n style={{\n background: 'hsl(0 0% 100% / 0.06)',\n borderTopRightRadius: '0.5rem',\n borderTopLeftRadius: '0.5rem',\n marginTop: '0.5rem',\n border: '1px solid hsl(0 0% 20.4%)',\n borderBottom: 'none',\n }}\n className=\"flex items-center justify-between gap-4 px-4 py-2 text-sm font-semibold text-white\"\n >\n <span className=\"lowercase [&>span]:text-xs\">{language}</span>\n <TooltipIconButton tooltip=\"Copy\" onClick={onCopy}>\n <span className=\"grid\">\n <span\n key=\"checkmark\"\n style={{\n gridArea: '1/1',\n }}\n className={cn('transition-transform', isCopied ? 'scale-100' : 'scale-0')}\n >\n <CheckIcon size={14} />\n </span>\n <span\n style={{\n gridArea: '1/1',\n }}\n className={cn('transition-transform', isCopied ? 'scale-0' : 'scale-100')}\n key=\"copy\"\n >\n <CopyIcon size={14} />\n </span>\n </span>\n </TooltipIconButton>\n </div>\n );\n};\n\nconst useCopyToClipboard = ({\n copiedDuration = 1500,\n}: {\n copiedDuration?: number;\n} = {}) => {\n const [isCopied, setIsCopied] = useState<boolean>(false);\n\n const copyToClipboard = (value: string) => {\n if (!value) return;\n\n navigator.clipboard.writeText(value).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), copiedDuration);\n });\n };\n\n return { isCopied, copyToClipboard };\n};\n\nconst defaultComponents = memoizeMarkdownComponents({\n h1: ({ className, ...props }) => (\n <h1\n className={cn('mb-8 scroll-m-20 text-4xl font-extrabold tracking-tight last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '2rem',\n }}\n />\n ),\n h2: ({ className, ...props }) => (\n <h2\n className={cn('mb-4 mt-8 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '2rem',\n }}\n />\n ),\n h3: ({ className, ...props }) => (\n <h3\n className={cn('scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '1.5rem',\n }}\n />\n ),\n h4: ({ className, ...props }) => (\n <h4\n className={cn('scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '1.5rem',\n }}\n />\n ),\n h5: ({ className, ...props }) => (\n <h5\n className={cn('font-semibold first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '1rem',\n }}\n />\n ),\n h6: ({ className, ...props }) => (\n <h6\n className={cn('font-semibold first:mt-0 last:mb-0', className)}\n {...props}\n style={{\n marginBottom: '1rem',\n marginTop: '1rem',\n }}\n />\n ),\n p: ({ className, ...props }) => <p className={cn('leading-7 first:mt-0 last:mb-0', className)} {...props} />,\n a: ({ className, ...props }) => (\n <a className={cn('text-primary font-medium underline underline-offset-4', className)} {...props} />\n ),\n blockquote: ({ className, ...props }) => (\n <blockquote className={cn('border-l-2 pl-6 italic', className)} {...props} />\n ),\n ul: ({ className, ...props }) => <ul className={cn('my-5 ml-6 list-disc [&>li]:mt-2', className)} {...props} />,\n ol: ({ className, ...props }) => <ol className={cn('my-5 ml-6 list-decimal [&>li]:mt-2', className)} {...props} />,\n hr: ({ className, ...props }) => <hr className={cn('my-5 border-b', className)} {...props} />,\n table: ({ className, ...props }) => (\n <table className={cn('my-5 w-full border-separate border-spacing-0 overflow-y-auto', className)} {...props} />\n ),\n th: ({ className, ...props }) => (\n <th\n className={cn(\n 'bg-muted px-4 py-2 text-left font-bold first:rounded-tl-lg last:rounded-tr-lg [&[align=center]]:text-center [&[align=right]]:text-right',\n className,\n )}\n {...props}\n />\n ),\n td: ({ className, ...props }) => (\n <td\n className={cn(\n 'border-b border-l px-4 py-2 text-left last:border-r [&[align=center]]:text-center [&[align=right]]:text-right',\n className,\n )}\n {...props}\n />\n ),\n tr: ({ className, ...props }) => (\n <tr\n className={cn(\n 'm-0 border-b p-0 first:border-t [&:last-child>td:first-child]:rounded-bl-lg [&:last-child>td:last-child]:rounded-br-lg',\n className,\n )}\n {...props}\n />\n ),\n sup: ({ className, ...props }) => <sup className={cn('[&>a]:text-xs [&>a]:no-underline', className)} {...props} />,\n pre: ({ className, ...props }) => (\n <pre\n {...props}\n style={{\n borderBottomRightRadius: '0.5rem',\n borderBottomLeftRadius: '0.5rem',\n background: 'transparent',\n fontSize: '0.875rem',\n marginBottom: '0.5rem',\n border: '1px solid hsl(0 0% 20.4%)',\n }}\n className={cn('overflow-x-auto p-4 text-white', className)}\n />\n ),\n code: function Code({ className, ...props }) {\n const isCodeBlock = useIsMarkdownCodeBlock();\n return (\n <pre\n style={{\n fontSize: '0.875rem',\n display: 'inline',\n }}\n >\n <code\n className={cn(!isCodeBlock && 'bg-muted rounded border font-semibold', className)}\n {...props}\n style={{\n fontWeight: '400',\n paddingBlock: !isCodeBlock ? '0.1em' : 0,\n paddingInline: !isCodeBlock ? '0.3em' : 0,\n }}\n />{' '}\n </pre>\n );\n },\n CodeHeader,\n SyntaxHighlighter,\n img: ImageWithFallback,\n});\n","import clsx from 'clsx';\nimport React from 'react';\n\nexport interface IconProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n size?: 'default' | 'lg' | 'sm';\n}\n\nconst sizes = {\n sm: '[&>svg]:h-icon-sm [&>svg]:w-icon-sm',\n default: '[&>svg]:h-icon-default [&>svg]:w-icon-default',\n lg: '[&>svg]:h-icon-lg [&>svg]:w-icon-lg',\n};\n\nexport const Icon = ({ children, className, size = 'default', ...props }: IconProps) => {\n return (\n <span className={clsx('block', sizes[size], className)} {...props}>\n {children}\n </span>\n );\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { Icon } from '../../icons/Icon';\n\nexport interface BadgeProps {\n icon?: React.ReactNode;\n variant?: 'default' | 'success' | 'error' | 'info';\n className?: string;\n children?: React.ReactNode;\n}\n\nconst variantClasses = {\n default: 'text-icon3',\n success: 'text-accent1',\n error: 'text-accent2',\n info: 'text-accent3',\n};\n\nexport const Badge = ({ icon, variant = 'default', className, children, ...props }: BadgeProps) => {\n return (\n <div\n className={clsx(\n 'bg-surface4 text-ui-sm gap-md h-badge-default inline-flex items-center rounded-md',\n icon ? 'pl-md pr-1.5' : 'px-1.5',\n icon || variant === 'default' ? 'text-icon5' : variantClasses[variant],\n className,\n )}\n {...props}\n >\n {icon && (\n <span className={variantClasses[variant]}>\n <Icon>{icon}</Icon>\n </span>\n )}\n {children}\n </div>\n );\n};\n","import React from 'react';\n\nexport const AgentIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.5 15C10.3565 15 12.137 14.2625 13.4497 12.9497C14.7625 11.637 15.5 9.85652 15.5 8C15.5 6.14348 14.7625 4.36301 13.4497 3.05025C12.137 1.7375 10.3565 1 8.5 1C6.64348 1 4.86301 1.7375 3.55025 3.05025C2.2375 4.36301 1.5 6.14348 1.5 8C1.5 9.85652 2.2375 11.637 3.55025 12.9497C4.86301 14.2625 6.64348 15 8.5 15ZM5.621 10.879L4.611 11.889C3.84179 11.1198 3.31794 10.1398 3.1057 9.07291C2.89346 8.00601 3.00236 6.90013 3.41864 5.89512C3.83491 4.89012 4.53986 4.03112 5.44434 3.42676C6.34881 2.8224 7.41219 2.49983 8.5 2.49983C9.58781 2.49983 10.6512 2.8224 11.5557 3.42676C12.4601 4.03112 13.1651 4.89012 13.5814 5.89512C13.9976 6.90013 14.1065 8.00601 13.8943 9.07291C13.6821 10.1398 13.1582 11.1198 12.389 11.889L11.379 10.879C11.1004 10.6003 10.7696 10.3792 10.4055 10.2284C10.0414 10.0776 9.6511 9.99995 9.257 10H7.743C7.3489 9.99995 6.95865 10.0776 6.59455 10.2284C6.23045 10.3792 5.89963 10.6003 5.621 10.879Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.5 4C7.96957 4 7.46086 4.21071 7.08579 4.58579C6.71071 4.96086 6.5 5.46957 6.5 6V6.5C6.5 7.03043 6.71071 7.53914 7.08579 7.91421C7.46086 8.28929 7.96957 8.5 8.5 8.5C9.03043 8.5 9.53914 8.28929 9.91421 7.91421C10.2893 7.53914 10.5 7.03043 10.5 6.5V6C10.5 5.46957 10.2893 4.96086 9.91421 4.58579C9.53914 4.21071 9.03043 4 8.5 4Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const AgentCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M63.0002 0.968262C28.5152 0.968262 0.55957 15.6484 0.55957 33.7573V51.2428C0.55957 69.3517 28.5152 84.0319 63.0002 84.0319C97.4853 84.0319 125.441 69.3517 125.441 51.2428V33.7573C125.441 15.6484 97.4853 0.968262 63.0002 0.968262Z\"\n stroke=\"#707070\"\n />\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636V49.8363C6.67773 65.0322 31.894 77.351 62.9998 77.351C94.1055 77.351 119.322 65.0322 119.322 49.8363V35.1636Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636M119.322 35.1636C119.322 19.9677 94.1055 7.64893 62.9998 7.64893C31.894 7.64893 6.67773 19.9677 6.67773 35.1636M119.322 35.1636V49.8363C119.322 65.0322 94.1055 77.351 62.9998 77.351C31.894 77.351 6.67773 65.0322 6.67773 49.8363V35.1636\"\n stroke=\"#424242\"\n />\n <g clipPath=\"url(#clip0_21421_19519)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M38.5383 47.0955C45.0714 50.3122 53.9322 52.1193 63.1714 52.1193C72.4106 52.1193 81.2714 50.3122 87.8045 47.0955C94.3376 43.8787 98.0078 39.5159 98.0078 34.9668C98.0078 30.4177 94.3376 26.0549 87.8045 22.8381C81.2714 19.6214 72.4106 17.8143 63.1714 17.8143C53.9322 17.8143 45.0714 19.6214 38.5383 22.8381C32.0052 26.0549 28.3349 30.4177 28.3349 34.9668C28.3349 39.5159 32.0052 43.8787 38.5383 47.0955ZM42.9089 34.9668L35.8005 34.9668C35.8004 32.3013 37.4056 29.6956 40.4132 27.4793C43.4207 25.263 47.6956 23.5355 52.6971 22.5154C57.6986 21.4954 63.2022 21.2285 68.5118 21.7485C73.8214 22.2685 78.6986 23.552 82.5266 25.4368C86.3546 27.3216 88.9615 29.723 90.0176 32.3373C91.0737 34.9517 90.5316 37.6614 88.4599 40.1241C86.3881 42.5867 82.8797 44.6915 78.3784 46.1723C73.8771 47.6532 68.585 48.4435 63.1714 48.4435V44.9435C63.1717 43.9778 62.7855 43.0215 62.035 42.1293C61.2845 41.2372 60.1843 40.4265 58.7973 39.7438L53.4695 37.1205C52.0828 36.4376 50.4364 35.8959 48.6244 35.5263C46.8124 35.1568 44.8702 34.9667 42.9089 34.9668Z\"\n fill=\"#A9A9A9\"\n />\n <path\n d=\"M77.2474 28.0361C75.3808 27.1171 72.8492 26.6007 70.2094 26.6007C67.5696 26.6007 65.038 27.1171 63.1714 28.0361L61.4119 28.9025C59.5453 29.8215 58.4966 31.068 58.4966 32.3678C58.4966 33.6676 59.5453 34.9141 61.4119 35.8331C63.2785 36.7522 65.8101 37.2685 68.4499 37.2685C71.0897 37.2685 73.6213 36.7522 75.4879 35.8331L77.2474 34.9668C79.114 34.0477 80.1627 32.8012 80.1627 31.5015C80.1627 30.2017 79.114 28.9552 77.2474 28.0361Z\"\n fill=\"#A9A9A9\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_21421_19519\">\n <rect\n width=\"62.7591\"\n height=\"62.7591\"\n fill=\"white\"\n transform=\"matrix(0.897148 0.441731 -0.897148 0.441731 63.1714 7.24365)\"\n />\n </clipPath>\n </defs>\n </svg>\n);\n","import React from 'react';\n\nexport const AiIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.31445 3.16083C3.78402 3.16083 3.27531 3.37154 2.90024 3.74661C2.52517 4.12169 2.31445 4.63039 2.31445 5.16083V5.66083C2.31445 6.19126 2.52517 6.69997 2.90024 7.07504C3.27531 7.45011 3.78402 7.66083 4.31445 7.66083C4.84489 7.66083 5.35359 7.45011 5.72867 7.07504C6.10374 6.69997 6.31445 6.19126 6.31445 5.66083V5.16083C6.31445 4.63039 6.10374 4.12169 5.72867 3.74661C5.35359 3.37154 4.84489 3.16083 4.31445 3.16083Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.76666 9.50235C6.57678 9.28532 6.30244 9.16083 6.01407 9.16083H4.50201C4.10791 9.16078 3.71766 9.23838 3.35356 9.38921C3.11733 9.48706 2.8951 9.6145 2.69205 9.76806C2.48056 9.928 2.38001 10.1888 2.38001 10.454V13.0642C2.38001 13.6165 2.82773 14.0642 3.38001 14.0642H8.55436C9.4135 14.0642 9.87269 13.0523 9.30695 12.4057L6.76666 9.50235Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.0686 2.26107C12.0686 2.17635 11.9999 2.10767 11.9152 2.10767H10.9948C10.91 2.10767 10.8414 2.17635 10.8414 2.26107V3.85184C10.8414 3.95606 10.7397 4.02994 10.6406 3.99773L9.12775 3.50619C9.04718 3.48001 8.96063 3.52411 8.93445 3.60468L8.65003 4.48004C8.62385 4.56062 8.66795 4.64716 8.74852 4.67334L10.2611 5.1648C10.3602 5.19701 10.399 5.31655 10.3378 5.40086L9.40289 6.68765C9.35309 6.75619 9.36829 6.85212 9.43683 6.90192L10.1815 7.44292C10.25 7.49272 10.3459 7.47752 10.3957 7.40898L11.3309 6.12181C11.3922 6.03749 11.5179 6.03749 11.5791 6.12181L12.5143 7.40904C12.5641 7.47758 12.6601 7.49278 12.7286 7.44298L13.4732 6.90198C13.5418 6.85218 13.557 6.75625 13.5072 6.68771L12.5723 5.40091C12.511 5.3166 12.5499 5.19705 12.649 5.16485L14.1615 4.67338C14.2421 4.6472 14.2862 4.56066 14.26 4.48009L13.9756 3.60473C13.9494 3.52415 13.8629 3.48006 13.7823 3.50624L12.2694 3.99782C12.1703 4.03003 12.0686 3.95615 12.0686 3.85193V2.26107Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const ApiIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M11.0313 7.97578C11.0313 9.34436 9.92183 10.4538 8.55324 10.4538C7.18466 10.4538 6.0752 9.34436 6.0752 7.97578C6.0752 6.60719 7.18466 5.49773 8.55324 5.49773C9.92183 5.49773 11.0313 6.60719 11.0313 7.97578ZM11.0313 7.97578H14.573\"\n stroke=\"currentColor\"\n strokeWidth=\"1.33333\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M12.967 4.46154C11.9273 3.14431 10.3165 2.29883 8.50814 2.29883C5.37277 2.29883 2.83105 4.84055 2.83105 7.97591C2.83105 11.1113 5.37277 13.653 8.50814 13.653C10.3165 13.653 11.9273 12.8075 12.967 11.4903\"\n stroke=\"currentColor\"\n strokeWidth=\"1.33333\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const BranchIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <circle cx=\"8.57129\" cy=\"8.08496\" r=\"2.27832\" stroke=\"currentColor\" />\n <path d=\"M5.89692 8.08203H2.45312\" stroke=\"currentColor\" />\n <path d=\"M14.5454 8.08203H11.1016\" stroke=\"currentColor\" />\n </svg>\n);\n","import React from 'react';\n\nexport const CheckIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.99982 2.0625C3.8252 2.0625 2.06232 3.82538 2.06232 6C2.06232 8.17462 3.8252 9.9375 5.99982 9.9375C8.17444 9.9375 9.93732 8.17462 9.93732 6C9.93732 3.82538 8.17444 2.0625 5.99982 2.0625ZM0.937317 6C0.937317 3.20406 3.20388 0.9375 5.99982 0.9375C8.79576 0.9375 11.0623 3.20406 11.0623 6C11.0623 8.79594 8.79576 11.0625 5.99982 11.0625C3.20388 11.0625 0.937317 8.79594 0.937317 6Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.97865 4.57004C8.22604 4.75795 8.27426 5.11082 8.08635 5.35821L6.05486 8.03279C5.94873 8.17251 5.78348 8.25471 5.60803 8.25505C5.43257 8.2554 5.267 8.17385 5.16032 8.03454L3.80937 6.27034C3.6205 6.02369 3.66733 5.67063 3.91398 5.48176C4.16063 5.29288 4.51369 5.33972 4.70257 5.58637L5.6051 6.76498L7.19048 4.67774C7.37839 4.43036 7.73126 4.38213 7.97865 4.57004Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const ChevronIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.60059 6.30005L8.00098 9.70005L11.3996 6.30142\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const CommitIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.46484 7.18262H3.29529C3.55505 8.46829 4.69121 9.43628 6.05347 9.43628C7.41572 9.43628 8.55188 8.46829 8.81165 7.18262L10.534 7.18262C10.8447 7.18262 11.0965 6.93078 11.0965 6.62012C11.0965 6.30946 10.8447 6.05762 10.534 6.05762L8.81075 6.05762C8.54929 4.77414 7.41417 3.80835 6.05347 3.80835C4.69277 3.80835 3.55764 4.77414 3.29618 6.05762H1.46484C1.15418 6.05762 0.902344 6.30946 0.902344 6.62012C0.902344 6.93078 1.15418 7.18262 1.46484 7.18262ZM6.05347 4.93335C5.12068 4.93335 4.3645 5.68952 4.3645 6.62231C4.3645 7.5551 5.12068 8.31128 6.05347 8.31128C6.98626 8.31128 7.74243 7.5551 7.74243 6.62231C7.74243 5.68952 6.98626 4.93335 6.05347 4.93335Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const CrossIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.99982 2.0625C3.8252 2.0625 2.06232 3.82538 2.06232 6C2.06232 8.17462 3.8252 9.9375 5.99982 9.9375C8.17444 9.9375 9.93732 8.17462 9.93732 6C9.93732 3.82538 8.17444 2.0625 5.99982 2.0625ZM0.937317 6C0.937317 3.20406 3.20388 0.9375 5.99982 0.9375C8.79576 0.9375 11.0623 3.20406 11.0623 6C11.0623 8.79594 8.79576 11.0625 5.99982 11.0625C3.20388 11.0625 0.937317 8.79594 0.937317 6Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.89741 4.10293C8.11707 4.32261 8.11706 4.67877 7.89738 4.89843L6.79517 6.00058L7.8962 7.10155C8.11588 7.32122 8.11589 7.67737 7.89623 7.89705C7.67656 8.11673 7.32041 8.11674 7.10073 7.89707L5.99965 6.79605L4.89856 7.89707C4.67889 8.11673 4.32273 8.11672 4.10307 7.89704C3.88341 7.67737 3.88342 7.32121 4.10309 7.10155L5.20413 6.00058L4.10191 4.89843C3.88224 4.67877 3.88223 4.32262 4.10189 4.10294C4.32155 3.88326 4.67771 3.88325 4.89738 4.10292L5.99965 5.20511L7.10191 4.10291C7.32159 3.88325 7.67774 3.88326 7.89741 4.10293Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const DbIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.941406 2.831V3.75745C0.941406 4.27885 1.35491 4.76002 2.05273 5.14711C2.10389 5.17549 2.15658 5.20337 2.21074 5.23071C3.23028 5.74546 4.77322 6.07356 6.50007 6.07356C8.31866 6.07356 9.93328 5.70967 10.9474 5.14711C11.6453 4.76002 12.0587 4.27886 12.0587 3.75745V2.831C12.0587 1.55185 9.57003 0.514893 6.50007 0.514893C3.4301 0.514893 0.941406 1.55185 0.941406 2.831ZM1.02052 6.14518C0.968505 6.27247 0.941406 6.40331 0.941406 6.53678V7.46322C0.941406 7.98463 1.35491 8.46579 2.05273 8.85289C3.06686 9.41542 4.68148 9.77933 6.50007 9.77933C8.22692 9.77933 9.76986 9.45128 10.7894 8.93645C10.8436 8.90912 10.8962 8.88124 10.9474 8.85289C11.6453 8.46579 12.0587 7.98462 12.0587 7.46322V6.53678C12.0587 6.40331 12.0316 6.27248 11.9796 6.14519C11.664 6.35469 11.3187 6.53063 10.9652 6.67795C9.75207 7.18337 8.17267 7.46322 6.50007 7.46322C4.82747 7.46322 3.24803 7.18337 2.03502 6.67795C1.68142 6.53063 1.3362 6.35469 1.02052 6.14518ZM1.02052 9.85095C0.968505 9.97824 0.941406 10.1091 0.941406 10.2426V11.169C0.941406 12.4481 3.4301 13.4851 6.50007 13.4851C9.57003 13.4851 12.0587 12.4481 12.0587 11.169V10.2426C12.0587 10.1091 12.0316 9.97824 11.9796 9.85095C11.664 10.0605 11.3187 10.2364 10.9652 10.3837C9.75207 10.8891 8.17267 11.169 6.50007 11.169C4.82747 11.169 3.24803 10.8891 2.03502 10.3837C1.68142 10.2364 1.3362 10.0605 1.02052 9.85095Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const DebugIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.14934 2.26085C5.88284 2.57794 5.92385 3.05104 6.24094 3.31754L7.05702 4.00343C6.51911 4.24774 6.05679 4.62747 5.72304 5.10093L4.31451 3.91711C3.99742 3.65061 3.52432 3.69162 3.25781 4.00871C2.99131 4.3258 3.03232 4.7989 3.34941 5.06541L5.1711 6.59647C5.16257 6.69009 5.1582 6.78504 5.1582 6.88115V8.02254H3.36523C2.95102 8.02254 2.61523 8.35833 2.61523 8.77254C2.61523 9.18675 2.95102 9.52254 3.36523 9.52254H5.1582V11.0692L3.38248 12.7049C3.07782 12.9856 3.05836 13.4601 3.339 13.7647C3.61965 14.0694 4.09412 14.0888 4.39877 13.8082L10.2843 8.38652V10.5302C10.2843 11.4231 9.5099 12.2129 8.47123 12.2129C8.28703 12.2129 8.11062 12.1876 7.94518 12.1411C7.54642 12.029 7.13229 12.2614 7.02021 12.6601C6.90812 13.0589 7.14051 13.473 7.53927 13.5851C7.83596 13.6685 8.14892 13.7129 8.47123 13.7129C9.71498 13.7129 10.8279 13.0443 11.3927 12.0355L13.0897 13.4618C13.4068 13.7283 13.8799 13.6873 14.1464 13.3702C14.4129 13.0531 14.3719 12.58 14.0548 12.3135L11.7843 10.4052V9.52254H13.634C14.0482 9.52254 14.384 9.18675 14.384 8.77254C14.384 8.35833 14.0482 8.02254 13.634 8.02254H11.7843V7.00473L13.9182 5.039C14.2228 4.75836 14.2423 4.28389 13.9616 3.97923C13.681 3.67458 13.2065 3.65512 12.9019 3.93576L6.6582 9.68737V6.88115C6.6582 5.98821 7.43256 5.19844 8.47123 5.19844L8.4789 5.19846L8.50782 5.22276L8.53124 5.19934C8.72739 5.20523 8.91424 5.23987 9.08781 5.29818C9.48045 5.43009 9.90569 5.21873 10.0376 4.82608C10.146 4.50351 10.0227 4.15895 9.75749 3.97309L10.4258 3.30474C10.7187 3.01185 10.7187 2.53698 10.4258 2.24408C10.1329 1.95119 9.65807 1.95119 9.36518 2.24408L8.41985 3.18941L7.20604 2.16925C6.88895 1.90274 6.41585 1.94375 6.14934 2.26085Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const DeploymentIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.83531 7.0062C6.64515 7.35069 6.15 7.35069 5.95984 7.0062L2.99029 1.62664C2.7855 1.25565 3.10614 0.814077 3.5223 0.893977L6.30195 1.42765C6.36421 1.43961 6.42818 1.43961 6.49044 1.42766L9.27301 0.893806C9.68915 0.813965 10.0097 1.25552 9.80495 1.62648L6.83531 7.0062Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.77553 6.93249C4.70399 6.80288 4.52254 6.79459 4.4558 6.92674C4.30167 7.23196 4.21484 7.57697 4.21484 7.94226C4.21484 9.18814 5.22483 10.1981 6.4707 10.1981C7.71658 10.1981 8.72656 9.18814 8.72656 7.94226C8.72656 7.51818 8.60954 7.12143 8.40603 6.78254C8.33262 6.66031 8.15949 6.67411 8.09059 6.79894L7.70941 7.48947C7.13892 8.52294 5.65347 8.52293 5.08299 7.48947L4.77553 6.93249ZM5.56313 5.8764C5.46196 5.92091 5.42707 6.04354 5.48048 6.1403L5.95846 7.0062C6.14862 7.35069 6.64377 7.35069 6.83393 7.0062L7.33905 6.09115C7.39467 5.99039 7.35417 5.86275 7.2461 5.8232C7.00431 5.7347 6.74315 5.6864 6.4707 5.6864C6.14785 5.6864 5.84083 5.75423 5.56313 5.8764Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.01974 3.49407C4.17993 3.78426 4.54405 3.88541 4.85312 3.76562C5.35484 3.57118 5.90031 3.46453 6.4707 3.46453C7.0005 3.46453 7.50881 3.55654 7.98052 3.72545C8.28711 3.83523 8.64168 3.73133 8.79906 3.44623C8.96234 3.15043 8.85109 2.77497 8.5364 2.652C7.89621 2.40184 7.19949 2.26453 6.4707 2.26453C5.69013 2.26453 4.94634 2.42205 4.2694 2.70703C3.96395 2.83562 3.85958 3.20392 4.01974 3.49407ZM9.9461 4.47216C9.81565 4.70848 9.85645 4.99948 10.0211 5.21339C10.6026 5.96887 10.9484 6.91518 10.9484 7.94226C10.9484 10.4152 8.94369 12.42 6.4707 12.42C3.99772 12.42 1.99297 10.4152 1.99297 7.94226C1.99297 6.96004 2.30923 6.05168 2.84547 5.31345C3.0006 5.09989 3.03605 4.81591 2.90848 4.58482C2.70986 4.22501 2.22216 4.15342 1.97124 4.47893C1.2324 5.43738 0.792968 6.6385 0.792968 7.94226C0.792969 11.078 3.33498 13.62 6.4707 13.62C9.60643 13.62 12.1484 11.078 12.1484 7.94226C12.1484 6.58193 11.67 5.33333 10.8723 4.35553C10.6173 4.04298 10.141 4.11901 9.9461 4.47216Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const DividerIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M8.5 3V13\" stroke=\"currentColor\" strokeWidth=\"0.5\" />\n </svg>\n);\n","import React from 'react';\n\nexport const DocsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.1747 3.18598L7.02554 1.95209C7.11557 1.89207 7.31087 1.87106 7.41016 1.90924L12.4139 3.83377C12.4683 3.85467 12.546 3.96798 12.546 4.03118V13.0167C12.546 13.265 12.7473 13.4663 12.9956 13.4663C13.2439 13.4663 13.4452 13.265 13.4452 13.0167V4.03118C13.4452 3.59605 13.1384 3.14906 12.7367 2.99456L7.73293 1.07004C7.36225 0.927472 6.86056 0.981451 6.52679 1.20396L4.20445 2.75219L3.90419 2.95236L3.90647 2.95824C3.69329 3.05449 3.55469 3.27599 3.55469 3.57581V11.7119C3.55469 12.2084 3.93067 12.7499 4.39251 12.9206L9.89804 14.955C10.3608 15.126 10.7359 14.8596 10.7359 14.3659V5.83295C10.7359 5.33662 10.3498 4.81289 9.88389 4.66643L5.1747 3.18598Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const EnvIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect x=\"2.74902\" y=\"1.89307\" width=\"11.8252\" height=\"11.8252\" rx=\"1.5\" stroke=\"currentColor\" />\n <path\n d=\"M5.74512 5.43539L8.13964 7.83011L5.86867 10.1011M9.32711 10.1753H11.7465\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const EvaluatorCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636V49.8363C6.67773 65.0322 31.894 77.351 62.9998 77.351C94.1055 77.351 119.322 65.0322 119.322 49.8363V35.1636Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636M119.322 35.1636C119.322 19.9677 94.1055 7.64893 62.9998 7.64893C31.894 7.64893 6.67773 19.9677 6.67773 35.1636M119.322 35.1636V49.8363C119.322 65.0322 94.1055 77.351 62.9998 77.351C31.894 77.351 6.67773 65.0322 6.67773 49.8363V35.1636\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.968262C28.5152 0.968262 0.55957 15.6484 0.55957 33.7573V51.2428C0.55957 69.3517 28.5152 84.0319 63.0002 84.0319C97.4853 84.0319 125.441 69.3517 125.441 51.2428V33.7573C125.441 15.6484 97.4853 0.968262 63.0002 0.968262Z\"\n stroke=\"#707070\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M29.7417 32.3666L33.2608 30.6339C34.6607 29.9446 36.5594 29.5574 38.5393 29.5574C40.5191 29.5574 42.4178 29.9446 43.8178 30.6339C45.2177 31.3232 46.0042 32.2581 46.0042 33.2329C46.0042 34.2077 45.2177 35.1426 43.8178 35.8319L40.2988 37.5646C38.8988 38.2539 37.0001 38.6411 35.0203 38.6411C33.0404 38.6411 31.1417 38.2539 29.7417 37.5646C28.3418 36.8753 27.5553 35.9404 27.5553 34.9656C27.5553 33.9908 28.3418 33.0559 29.7417 32.3666ZM43.8178 39.2972L56.1343 33.2329C57.5343 32.5436 59.433 32.1564 61.4129 32.1564C63.3927 32.1564 65.2914 32.5436 66.6914 33.2329C68.0913 33.9222 68.8778 34.8571 68.8778 35.8319C68.8778 36.8067 68.0913 37.7416 66.6914 38.4309L54.3748 44.4952C52.9749 45.1845 51.0761 45.5718 49.0963 45.5718C47.1165 45.5718 45.2177 45.1845 43.8178 44.4952C42.4178 43.8059 41.6314 42.8711 41.6314 41.8962C41.6314 40.9214 42.4178 39.9865 43.8178 39.2972ZM57.8938 46.2279L86.0459 32.3666C87.4459 31.6773 89.3446 31.29 91.3245 31.29C93.3043 31.29 95.203 31.6773 96.603 32.3666C98.0029 33.0559 98.7894 33.9908 98.7894 34.9656C98.7894 35.9404 98.0029 36.8753 96.603 37.5646L68.4509 51.4259C67.0509 52.1152 65.1522 52.5024 63.1724 52.5024C61.1925 52.5024 59.2938 52.1152 57.8938 51.4259C56.4939 50.7366 55.7074 49.8017 55.7074 48.8269C55.7074 47.8521 56.4939 46.9172 57.8938 46.2279Z\"\n fill=\"#A9A9A9\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const FiltersIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.00001 12.5C6.00001 11.948 6.44401 11.5 7.00001 11.5H10C10.552 11.5 11 11.944 11 12.5C11 13.052 10.556 13.5 10 13.5H7.00001C6.44801 13.5 6.00001 13.056 6.00001 12.5ZM4.00001 8.5C4.00001 7.948 4.44601 7.5 4.99801 7.5H12.002C12.553 7.5 13 7.944 13 8.5C13 9.052 12.554 9.5 12.002 9.5H4.99801C4.86671 9.50026 4.73665 9.47457 4.61531 9.42438C4.49398 9.37419 4.38377 9.30051 4.29102 9.20757C4.19827 9.11464 4.12481 9.00428 4.07486 8.88284C4.02492 8.76141 3.99948 8.6313 4.00001 8.5ZM1.50001 4C1.50001 3.172 2.17501 2.5 2.99801 2.5H14.002C14.829 2.5 15.5 3.166 15.5 4C15.5 4.828 14.825 5.5 14.002 5.5H2.99801C2.80101 5.5004 2.60587 5.46185 2.42382 5.38659C2.24176 5.31132 2.07638 5.20082 1.93717 5.06142C1.79796 4.92203 1.68768 4.7565 1.61265 4.57434C1.53763 4.39219 1.49935 4.197 1.50001 4Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const GithubCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"127\" height=\"86\" viewBox=\"0 0 127 86\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M63.9116 1.87891C29.4266 1.87891 1.47095 16.5591 1.47095 34.668V52.1534C1.47095 70.2623 29.4266 84.9425 63.9116 84.9425C98.3967 84.9425 126.352 70.2623 126.352 52.1534V34.668C126.352 16.5591 98.3967 1.87891 63.9116 1.87891Z\"\n stroke=\"#707070\"\n />\n <path\n d=\"M120.233 36.0742C120.233 51.2701 95.0169 63.5889 63.9111 63.5889C32.8053 63.5889 7.58911 51.2701 7.58911 36.0742V50.7469C7.58911 65.9429 32.8053 78.2616 63.9111 78.2616C95.0169 78.2616 120.233 65.9429 120.233 50.7469V36.0742Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M120.233 36.0742C120.233 51.2701 95.0169 63.5889 63.9111 63.5889C32.8053 63.5889 7.58911 51.2701 7.58911 36.0742M120.233 36.0742C120.233 20.8783 95.0169 8.55957 63.9111 8.55957C32.8053 8.55957 7.58911 20.8783 7.58911 36.0742M120.233 36.0742V50.7469C120.233 65.9429 95.0169 78.2616 63.9111 78.2616C32.8053 78.2616 7.58911 65.9429 7.58911 50.7469V36.0742\"\n stroke=\"#424242\"\n />\n <g clipPath=\"url(#clip0_21999_20545)\">\n <path\n d=\"M86.4812 24.847C73.5239 18.4672 52.5342 18.4672 39.5769 24.847C29.1993 29.9566 27.1473 37.5778 33.3621 43.6978C34.3295 44.3762 35.4728 44.2463 36.0884 43.9432C36.6454 43.6689 38.4629 42.7452 40.4271 41.7781C33.45 39.4109 34.4468 37.419 35.2969 36.5385C35.7073 36.0766 36.6454 34.4889 36.2057 33.7239C35.8246 33.1032 35.7366 31.9918 37.7301 32.9445C39.6062 33.8394 39.1958 35.3405 38.932 35.9034C37.4955 38.6892 41.8635 39.8584 43.8276 40.2192C45.5572 39.5697 47.1989 39.3676 48.4594 39.4109C43.8276 36.553 40.3977 32.8723 49.3682 28.4555C51.9186 27.1997 54.9381 26.6079 58.0748 26.5358C58.4266 26.1316 60.0096 24.5439 64.5241 23.5912C64.5241 23.5912 67.1039 24.2552 68.5696 27.9503C70.9735 28.6143 73.2307 29.4659 75.2242 30.4474C77.2176 31.4289 78.9472 32.5403 80.2957 33.7239C87.8297 34.4312 89.1489 35.7158 89.1489 35.7158C87.2141 37.9386 83.9894 38.7181 83.1686 38.8913C83.022 40.4357 81.8494 41.908 79.2697 43.1782C70.2699 47.6094 62.7945 45.8918 56.9901 43.6112C57.1074 44.3906 56.4331 45.4443 54.2345 46.5269C51.0978 48.0713 48.5474 49.2982 47.7558 49.6879C47.1402 49.991 46.8471 50.5684 48.2542 51.0303C54.4816 52.5487 61.5193 53.0674 68.3768 52.5133C75.2342 51.9592 81.5661 50.3602 86.4812 47.9414C99.4385 41.5616 99.4385 31.2268 86.4812 24.847Z\"\n fill=\"#A9A9A9\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_21999_20545\">\n <rect\n width=\"62.7591\"\n height=\"62.7591\"\n fill=\"white\"\n transform=\"matrix(0.897148 0.441731 -0.897148 0.441731 64.0828 8.1543)\"\n />\n </clipPath>\n </defs>\n </svg>\n);\n","import React from 'react';\n\nexport const GithubIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_21999_22095)\">\n <path\n d=\"M7.5 0.75C3.6325 0.75 0.5 3.8825 0.5 7.75C0.5 10.8475 2.50375 13.4637 5.28625 14.3912C5.63625 14.4525 5.7675 14.2425 5.7675 14.0587C5.7675 13.8925 5.75875 13.3412 5.75875 12.755C4 13.0787 3.545 12.3262 3.405 11.9325C3.32625 11.7312 2.985 11.11 2.6875 10.9437C2.4425 10.8125 2.0925 10.4887 2.67875 10.48C3.23 10.4712 3.62375 10.9875 3.755 11.1975C4.385 12.2562 5.39125 11.9587 5.79375 11.775C5.855 11.32 6.03875 11.0137 6.24 10.8387C4.6825 10.6637 3.055 10.06 3.055 7.3825C3.055 6.62125 3.32625 5.99125 3.7725 5.50125C3.7025 5.32625 3.4575 4.60875 3.8425 3.64625C3.8425 3.64625 4.42875 3.4625 5.7675 4.36375C6.3275 4.20625 6.9225 4.1275 7.5175 4.1275C8.1125 4.1275 8.7075 4.20625 9.2675 4.36375C10.6062 3.45375 11.1925 3.64625 11.1925 3.64625C11.5775 4.60875 11.3325 5.32625 11.2625 5.50125C11.7087 5.99125 11.98 6.6125 11.98 7.3825C11.98 10.0687 10.3438 10.6637 8.78625 10.8387C9.04 11.0575 9.25875 11.4775 9.25875 12.1337C9.25875 13.07 9.25 13.8225 9.25 14.0587C9.25 14.2425 9.38125 14.4612 9.73125 14.3912C11.1209 13.9221 12.3284 13.029 13.1839 11.8377C14.0393 10.6463 14.4996 9.21668 14.5 7.75C14.5 3.8825 11.3675 0.75 7.5 0.75Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_21999_22095\">\n <rect width=\"14\" height=\"14\" fill=\"currentColor\" transform=\"translate(0.5 0.75)\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import React from 'react';\n\nexport const GoogleIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_21999_20513)\">\n <path\n d=\"M13.5037 7.54867C13.5037 7.1144 13.4648 6.69683 13.3924 6.29596H7.62436V8.66776H10.9204C10.7756 9.43052 10.3413 10.0764 9.68994 10.5106V12.0529H11.6776C12.8356 10.9839 13.5037 9.41382 13.5037 7.54867Z\"\n fill=\"white\"\n />\n <path\n d=\"M7.62415 13.5339C9.27773 13.5339 10.6643 12.9882 11.6776 12.0529L9.68994 10.5106C9.14431 10.8781 8.44816 11.1009 7.62415 11.1009C6.03182 11.1009 4.67889 10.0263 4.19451 8.57877H2.15677V10.16C3.1645 12.1587 5.23008 13.5339 7.62415 13.5339Z\"\n fill=\"white\"\n />\n <path\n d=\"M4.19472 8.57315C4.07223 8.20569 3.99985 7.81595 3.99985 7.40952C3.99985 7.00308 4.07223 6.61335 4.19472 6.24589V4.66469H2.15698C1.73941 5.4887 1.5 6.41849 1.5 7.40952C1.5 8.40055 1.73941 9.33034 2.15698 10.1543L3.74374 8.91834L4.19472 8.57315Z\"\n fill=\"white\"\n />\n <path\n d=\"M7.62415 3.72376C8.5261 3.72376 9.32783 4.03555 9.96811 4.63685L11.7219 2.88306C10.6585 1.89202 9.27773 1.28516 7.62415 1.28516C5.23008 1.28516 3.16471 2.66036 2.15698 4.66469L4.19472 6.24589C4.6791 4.79832 6.03182 3.72376 7.62415 3.72376Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_21999_20513\">\n <rect width=\"12.2487\" height=\"12.2487\" fill=\"white\" transform=\"translate(1.375 1.28516)\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import React from 'react';\n\nexport const RepoIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"21\" height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.15562 2.79004C4.56136 2.78745 3.26758 4.07913 3.26758 5.6734V13.8135C3.26758 15.4058 4.55831 16.6967 6.15062 16.6968L6.16797 16.6968V14.8218L6.15082 14.8218C5.59397 14.8218 5.14258 14.3703 5.14258 13.8135V13.4325C5.14258 12.8756 5.59415 12.4241 6.15112 12.4242L15.0001 12.4258L15.0056 14.8228L12.6035 14.8226V16.6976L16.8849 16.698L16.8713 10.7717V2.80745L6.15562 2.79004ZM14.9963 10.5508V4.67941L6.15257 4.66504C5.59503 4.66413 5.14258 5.11586 5.14258 5.6734V10.7304C5.4566 10.6132 5.79655 10.5491 6.15147 10.5492L14.9963 10.5508Z\"\n fill=\"#939393\"\n />\n <path d=\"M7.55469 13.6982H11.2655V18.6897L9.41007 17.1997L7.55469 18.6897V13.6982Z\" fill=\"#939393\" />\n </svg>\n);\n","import React from 'react';\n\nexport const HomeIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M3.84766 10.1444H9.11328\" stroke=\"currentColor\" strokeWidth=\"1.33333\" strokeLinecap=\"round\" />\n <path\n d=\"M11.1395 12.9536L1.82388 12.9535C1.4557 12.9535 1.15723 12.655 1.15723 12.2868V5.69147C1.15723 5.49041 1.24796 5.30009 1.40417 5.17351L6.07746 1.38658C6.32202 1.18841 6.67185 1.18829 6.91654 1.38629L11.5589 5.14286C11.7153 5.26944 11.8062 5.45989 11.8062 5.66111V12.287C11.8062 12.6552 11.5077 12.9536 11.1395 12.9536Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.33333\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const InfoIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7.07303 7.39921C6.65882 7.39921 6.32303 7.735 6.32303 8.14921C6.32303 8.56343 6.65882 8.89921 7.07303 8.89921H7.75V10.6187C7.75 11.0329 8.08579 11.3687 8.5 11.3687C8.91421 11.3687 9.25 11.0329 9.25 10.6187V8.14921C9.25 7.735 8.91421 7.39921 8.5 7.39921H7.07303Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.50309 4.72995C7.9971 4.72995 7.58691 5.14014 7.58691 5.64613C7.58691 6.15212 7.9971 6.56231 8.50309 6.56231C9.00908 6.56231 9.41927 6.15212 9.41927 5.64613C9.41927 5.14014 9.00908 4.72995 8.50309 4.72995Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.5 1.75293C5.04984 1.75293 2.25293 4.54984 2.25293 8C2.25293 11.4502 5.04984 14.2471 8.5 14.2471C11.9502 14.2471 14.7471 11.4502 14.7471 8C14.7471 4.54984 11.9502 1.75293 8.5 1.75293ZM3.75293 8C3.75293 5.37827 5.87827 3.25293 8.5 3.25293C11.1218 3.25293 13.2471 5.37826 13.2471 8C13.2471 10.6218 11.1218 12.7471 8.5 12.7471C5.87826 12.7471 3.75293 10.6218 3.75293 8Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const JudgeIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.31445 3.16083C3.78402 3.16083 3.27531 3.37154 2.90024 3.74661C2.52517 4.12169 2.31445 4.63039 2.31445 5.16083V5.66083C2.31445 6.19126 2.52517 6.69997 2.90024 7.07504C3.27531 7.45011 3.78402 7.66083 4.31445 7.66083C4.84489 7.66083 5.35359 7.45011 5.72867 7.07504C6.10374 6.69997 6.31445 6.19126 6.31445 5.66083V5.16083C6.31445 4.63039 6.10374 4.12169 5.72867 3.74661C5.35359 3.37154 4.84489 3.16083 4.31445 3.16083Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.76666 9.50235C6.57678 9.28532 6.30244 9.16083 6.01407 9.16083H4.50201C4.10791 9.16078 3.71766 9.23838 3.35356 9.38921C3.11733 9.48706 2.8951 9.6145 2.69205 9.76806C2.48056 9.928 2.38001 10.1888 2.38001 10.454V13.0642C2.38001 13.6165 2.82773 14.0642 3.38001 14.0642H8.55436C9.4135 14.0642 9.87269 13.0523 9.30695 12.4057L6.76666 9.50235Z\"\n fill=\"currentColor\"\n />\n <rect x=\"7.92188\" y=\"6.46759\" width=\"1.41089\" height=\"1.56773\" rx=\"0.705445\" fill=\"currentColor\" />\n <rect x=\"10.4258\" y=\"4.35107\" width=\"1.41089\" height=\"3.72998\" rx=\"0.705445\" fill=\"currentColor\" />\n <rect x=\"12.9287\" y=\"2.23419\" width=\"1.41089\" height=\"5.75781\" rx=\"0.705445\" fill=\"currentColor\" />\n </svg>\n);\n","import React from 'react';\n\nexport const LogsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M3.46094 8.01825L13.6348 8.01825\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d=\"M3.46094 3.49384L13.6348 3.49384\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d=\"M3.46094 12.5427L13.6348 12.5427\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n);\n","import React from 'react';\n\nexport const MemoryIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M3.8674 9.19968L4.14554 10.8649C4.23965 11.4283 4.75254 11.8237 5.32137 11.7713L5.58252 11.7472C6.56555 11.6567 7.43309 12.3868 7.51181 13.3708L7.59308 14.3867C7.60422 14.5259 7.71868 14.6342 7.85825 14.6376L9.91053 14.6876C10.1066 14.6924 10.2434 14.4948 10.17 14.3129L8.90452 11.1782C8.80956 10.9429 8.65085 10.7389 8.44626 10.5889L7.90134 10.1895C7.70604 10.0464 7.55223 9.85411 7.45759 9.63124C7.15011 8.90712 6.6579 7.71234 6.37054 6.88944C6.19204 6.3783 5.79931 6.29158 5.45492 6.21553C4.98179 6.11106 4.5999 6.02673 4.99001 4.88985C5.66408 2.92541 8.06015 2.07904 10.6601 3.33088C12.6488 4.2884 13.1187 6.35416 13.0328 7.58237C13.0297 7.62768 13.0214 7.67186 13.0094 7.71566C12.8829 8.17534 12.368 8.40491 11.9415 8.19169L10.3022 7.37201C10.2069 7.32439 10.0927 7.33657 10.0096 7.40322L8.64809 8.49559C8.55405 8.57104 8.52072 8.69931 8.56615 8.811L10.8995 14.5478C10.9404 14.6483 11.0369 14.715 11.1454 14.7177L12.0572 14.7399C12.2581 14.7448 12.3951 14.5382 12.3124 14.3551L11.8681 13.3706C11.4211 12.3803 11.6047 11.2192 12.3354 10.4151L13.4616 9.17575C13.7473 8.86125 13.9224 8.46187 13.9599 8.03858L13.9763 7.85359C14.2866 4.35298 11.377 1.41272 7.87336 1.68639C6.03919 1.82965 4.45399 3.02228 3.80807 4.74492L3.70275 5.02579C3.5828 5.34571 3.62741 5.70411 3.82213 5.98485L3.88946 6.08192C4.12183 6.41695 4.0958 6.86726 3.82637 7.17328L3.06705 8.03572C2.96261 8.15435 2.98058 8.33664 3.10617 8.43259L3.66059 8.85617C3.77064 8.94026 3.84458 9.06307 3.8674 9.19968Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const OpenAIIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10.1266 5.67745C10.3409 5.0225 10.2695 4.2961 9.92413 3.70069C9.40017 2.78376 8.34034 2.31934 7.30433 2.53369C6.85182 2.02164 6.18496 1.73584 5.49428 1.73584C4.43445 1.73584 3.50561 2.41461 3.17218 3.4149C2.49342 3.55779 1.90992 3.97458 1.56458 4.5819C1.04062 5.49883 1.1597 6.64202 1.86228 7.42796C1.64793 8.09482 1.73129 8.80931 2.07663 9.40472C2.60059 10.3217 3.66042 10.798 4.69643 10.5717C5.16085 11.0838 5.8158 11.3815 6.50648 11.3815C7.56631 11.3815 8.49515 10.7027 8.82858 9.70243C9.50735 9.55953 10.0908 9.14274 10.4362 8.53542C10.9601 7.61849 10.8411 6.46339 10.1266 5.67745ZM6.50648 10.7503C6.07778 10.7503 5.67291 10.6074 5.35138 10.3336C5.36329 10.3217 5.39902 10.3097 5.41093 10.2978L7.32815 9.19037C7.42341 9.13083 7.48295 9.03557 7.48295 8.91648V6.21332L8.29271 6.67774C8.30462 6.67774 8.30462 6.68965 8.30462 6.70156V8.9403C8.31653 9.94059 7.50677 10.7503 6.50648 10.7503ZM2.62441 9.09511C2.41006 8.72595 2.33861 8.29726 2.41006 7.88047C2.42197 7.89238 2.44578 7.90429 2.4696 7.91619L4.38682 9.02366C4.48209 9.0832 4.60117 9.0832 4.69643 9.02366L7.04235 7.66612V8.60687C7.04235 8.61878 7.04235 8.63069 7.03044 8.63069L5.0894 9.75006C4.23201 10.2502 3.12455 9.9525 2.62441 9.09511ZM2.12426 4.90342C2.33861 4.53427 2.67204 4.26038 3.06501 4.10557V6.39195C3.06501 6.49912 3.12455 6.60629 3.21982 6.66583L5.56573 8.02337L4.75597 8.48779C4.74407 8.48779 4.73216 8.4997 4.73216 8.48779L2.79112 7.36842C1.90992 6.86827 1.62412 5.76081 2.12426 4.90342ZM8.79285 6.45149L6.44694 5.09395L7.2567 4.62953C7.2686 4.62953 7.28051 4.61762 7.28051 4.62953L9.22155 5.7489C10.0908 6.24905 10.3766 7.35651 9.8765 8.2139C9.66215 8.58305 9.32872 8.85694 8.93575 8.99984V6.72538C8.94766 6.6182 8.88812 6.51103 8.79285 6.45149ZM9.5907 5.23685C9.5788 5.22494 9.55498 5.21303 9.53116 5.20113L7.61394 4.09366C7.51868 4.03412 7.39959 4.03412 7.30433 4.09366L4.95841 5.4512V4.51045C4.95841 4.49854 4.95841 4.48663 4.97032 4.48663L6.91136 3.36726C7.78066 2.86712 8.87621 3.16482 9.37636 4.03412C9.5907 4.39137 9.66215 4.82006 9.5907 5.23685ZM4.51781 6.904L3.70805 6.43958C3.69615 6.43958 3.69615 6.42767 3.69615 6.41576V4.17702C3.69615 3.17673 4.5059 2.36697 5.50619 2.36697C5.93489 2.36697 6.33977 2.50987 6.66129 2.78376C6.64938 2.79567 6.62556 2.80758 6.60175 2.81949L4.68453 3.92695C4.58926 3.98649 4.52972 4.08176 4.52972 4.20084V6.904H4.51781ZM4.95841 5.95134L6.00634 5.34402L7.05426 5.95134V7.15407L6.00634 7.76139L4.95841 7.15407V5.95134Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const PromptIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.8341 11.2099H12.4915C13.598 11.2099 14.5 10.3156 14.5 9.21251V4.20729C14.5 3.10576 13.6007 2.2099 12.4915 2.2099H4.50853C3.40195 2.2099 2.5 3.10416 2.5 4.20729V9.21251C2.5 10.3112 3.39464 11.2053 4.5 11.2099V13.2005C4.5 13.7665 4.87069 13.9533 5.32796 13.6368L8.8341 11.2099Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const ScoreIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 12V11C3 10.6022 3.15804 10.2206 3.43934 9.93934C3.72064 9.65804 4.10218 9.5 4.5 9.5C4.89782 9.5 5.27936 9.65804 5.56066 9.93934C5.84196 10.2206 6 10.6022 6 11V12C6 12.3978 5.84196 12.7794 5.56066 13.0607C5.27936 13.342 4.89782 13.5 4.5 13.5C4.10218 13.5 3.72064 13.342 3.43934 13.0607C3.15804 12.7794 3 12.3978 3 12ZM7 12V8.5C7 8.10218 7.15804 7.72064 7.43934 7.43934C7.72064 7.15804 8.10218 7 8.5 7C8.89782 7 9.27936 7.15804 9.56066 7.43934C9.84196 7.72064 10 8.10218 10 8.5V12C10 12.3978 9.84196 12.7794 9.56066 13.0607C9.27936 13.342 8.89782 13.5 8.5 13.5C8.10218 13.5 7.72064 13.342 7.43934 13.0607C7.15804 12.7794 7 12.3978 7 12ZM11 12V4C11 3.60218 11.158 3.22064 11.4393 2.93934C11.7206 2.65804 12.1022 2.5 12.5 2.5C12.8978 2.5 13.2794 2.65804 13.5607 2.93934C13.842 3.22064 14 3.60218 14 4V12C14 12.3978 13.842 12.7794 13.5607 13.0607C13.2794 13.342 12.8978 13.5 12.5 13.5C12.1022 13.5 11.7206 13.342 11.4393 13.0607C11.158 12.7794 11 12.3978 11 12Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const SettingsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"18\" viewBox=\"0 0 17 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.40864 11.9983C7.58064 11.9733 6.84164 11.6153 6.31564 11.0563C6.31464 11.0563 6.31464 11.0553 6.31464 11.0553C5.78864 10.4963 5.47564 9.73633 5.50064 8.90833C5.52564 8.08033 5.88464 7.34133 6.44364 6.81533C7.00264 6.28833 7.76264 5.97633 8.59064 6.00133C9.41864 6.02633 10.1576 6.38433 10.6836 6.94333H10.6846C11.2106 7.50333 11.5236 8.26233 11.4986 9.09033C11.4726 9.91833 11.1146 10.6583 10.5556 11.1843C9.99664 11.7103 9.23664 12.0233 8.40864 11.9983ZM16.1266 8.15033L14.3606 7.74033C14.2316 7.14133 14.0146 6.57633 13.7216 6.05733L14.7726 4.57933C14.9116 4.38533 14.8926 4.12033 14.7296 3.94633L13.9206 3.08733C13.7576 2.91333 13.4946 2.87933 13.2916 3.00533L11.7526 3.96533C11.2526 3.64133 10.7016 3.39033 10.1116 3.22633L9.80964 1.43833C9.76964 1.20333 9.56964 1.02833 9.33164 1.02133L8.15264 0.985326C7.91364 0.978326 7.70364 1.14033 7.64964 1.37233L7.24064 3.13933C6.64164 3.26733 6.07664 3.48433 5.55664 3.77733L4.07864 2.72633C3.88464 2.58833 3.61964 2.60633 3.44664 2.76933L2.58664 3.57833C2.41364 3.74133 2.37964 4.00533 2.50564 4.20733L3.46564 5.74633C3.14164 6.24633 2.89064 6.79833 2.72564 7.38833L0.937635 7.68933C0.702635 7.72933 0.528635 7.92933 0.520635 8.16733L0.485635 9.34733C0.477635 9.58533 0.639635 9.79533 0.872635 9.84933L2.63864 10.2583C2.76764 10.8573 2.98464 11.4233 3.27764 11.9423L2.22564 13.4203C2.08764 13.6143 2.10564 13.8793 2.26964 14.0523L3.07864 14.9123C3.24164 15.0853 3.50464 15.1203 3.70664 14.9933L5.24564 14.0333C5.74663 14.3583 6.29764 14.6093 6.88764 14.7733L7.18964 16.5613C7.22864 16.7963 7.42864 16.9713 7.66764 16.9783L8.84663 17.0143C9.08564 17.0213 9.29564 16.8593 9.34964 16.6273L9.75864 14.8603C10.3576 14.7323 10.9226 14.5153 11.4416 14.2213L12.9206 15.2733C13.1146 15.4113 13.3786 15.3933 13.5526 15.2293L14.4116 14.4213C14.5856 14.2573 14.6196 13.9943 14.4936 13.7923L13.5336 12.2533C13.8576 11.7523 14.1086 11.2013 14.2726 10.6113L16.0616 10.3103C16.2966 10.2703 16.4706 10.0703 16.4776 9.83233L16.5136 8.65233C16.5206 8.41433 16.3586 8.20433 16.1266 8.15033Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const SlashIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M5.25684 12.6387L10.4003 3.36133H11.7432L6.5997 12.6387H5.25684Z\" fill=\"currentColor\" />\n </svg>\n);\n","import React from 'react';\n\nexport const ToolsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.5605 1.42351C8.0791 0.904904 8.92215 0.906157 9.4395 1.42351L10.6922 2.67617C11.2108 3.19477 11.2095 4.03782 10.6922 4.55517L9.4395 5.80783C8.9209 6.32643 8.07785 6.32518 7.5605 5.80783L6.30784 4.55517C5.78923 4.03656 5.79049 3.19352 6.30784 2.67617L7.5605 1.42351ZM3.17618 5.80783C3.69478 5.28923 4.53782 5.29048 5.05517 5.80783L6.30784 7.0605C6.82644 7.5791 6.82519 8.42214 6.30784 8.93949L5.05517 10.1922C4.53657 10.7108 3.69353 10.7095 3.17618 10.1922L1.92351 8.93949C1.40491 8.42089 1.40616 7.57785 1.92351 7.0605L3.17618 5.80783ZM11.9448 5.80783C12.4634 5.28923 13.3065 5.29048 13.8238 5.80783L15.0765 7.0605C15.5951 7.5791 15.5938 8.42214 15.0765 8.93949L13.8238 10.1922C13.3052 10.7108 12.4622 10.7095 11.9448 10.1922L10.6922 8.93949C10.1736 8.42089 10.1748 7.57785 10.6922 7.0605L11.9448 5.80783ZM7.5605 10.1922C8.0791 9.67355 8.92215 9.67481 9.4395 10.1922L10.6922 11.4448C11.2108 11.9634 11.2095 12.8065 10.6922 13.3238L9.4395 14.5765C8.9209 15.0951 8.07785 15.0938 7.5605 14.5765L6.30784 13.3238C5.78923 12.8052 5.79049 11.9622 6.30784 11.4448L7.5605 10.1922Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const TraceIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M3.0498 3.17139V7.95137M6.91346 12.8737L4.04984 12.8738C3.49754 12.8738 3.0498 12.4261 3.0498 11.8738V7.95137M3.0498 7.95137L6.85968 7.95125\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n />\n <path d=\"M6.59668 3.12631L13.9507 3.12631\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d=\"M10.293 7.95099L13.8072 7.95099\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d=\"M10.293 12.8025L13.8072 12.8025\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n);\n","import React from 'react';\n\nexport const TsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect x=\"2.74902\" y=\"1.89307\" width=\"11.8252\" height=\"11.8252\" rx=\"1.5\" stroke=\"currentColor\" />\n <path d=\"M5.64062 7.98265V7.29806H8.86605V7.98265H7.66371V11.2253H6.84297V7.98265H5.64062Z\" fill=\"currentColor\" />\n <path\n d=\"M11.5277 8.42754C11.5124 8.27285 11.4465 8.15268 11.3302 8.06703C11.2138 7.98137 11.056 7.93855 10.8565 7.93855C10.721 7.93855 10.6066 7.95772 10.5133 7.99607C10.42 8.03315 10.3484 8.08492 10.2985 8.1514C10.2499 8.21788 10.2256 8.2933 10.2256 8.37768C10.2231 8.44799 10.2378 8.50936 10.2697 8.56177C10.303 8.61418 10.3484 8.65957 10.4059 8.69792C10.4634 8.73499 10.5299 8.76759 10.6053 8.79572C10.6808 8.82257 10.7613 8.84558 10.8469 8.86475L11.1998 8.94913C11.3711 8.98748 11.5283 9.03862 11.6715 9.10254C11.8147 9.16646 11.9387 9.24508 12.0435 9.3384C12.1484 9.43173 12.2295 9.54167 12.2871 9.66823C12.3459 9.7948 12.3759 9.9399 12.3772 10.1035C12.3759 10.3439 12.3146 10.5523 12.1931 10.7287C12.0729 10.9038 11.8991 11.04 11.6715 11.1371C11.4452 11.233 11.1723 11.2809 10.8527 11.2809C10.5357 11.2809 10.2595 11.2324 10.0243 11.1352C9.79034 11.038 9.60753 10.8942 9.47585 10.7037C9.34545 10.512 9.27706 10.2748 9.27067 9.99231H10.0741C10.0831 10.124 10.1208 10.2339 10.1873 10.3221C10.255 10.4091 10.3452 10.4749 10.4577 10.5197C10.5714 10.5631 10.6999 10.5849 10.8431 10.5849C10.9837 10.5849 11.1058 10.5644 11.2094 10.5235C11.3142 10.4826 11.3954 10.4257 11.4529 10.3528C11.5104 10.28 11.5392 10.1962 11.5392 10.1016C11.5392 10.0134 11.513 9.93926 11.4606 9.87917C11.4094 9.81909 11.334 9.76795 11.2343 9.72576C11.1359 9.68357 11.0151 9.64522 10.8719 9.6107L10.4442 9.50332C10.1131 9.42278 9.8517 9.29686 9.65994 9.12555C9.46818 8.95424 9.37294 8.72349 9.37422 8.43329C9.37294 8.19551 9.43622 7.98776 9.56406 7.81007C9.69318 7.63237 9.87024 7.49366 10.0952 7.39394C10.3202 7.29423 10.5759 7.24437 10.8623 7.24437C11.1538 7.24437 11.4082 7.29423 11.6255 7.39394C11.8441 7.49366 12.0141 7.63237 12.1356 7.81007C12.257 7.98776 12.3197 8.19359 12.3235 8.42754H11.5277Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const VariablesIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.4997 7.97482V8.6501C15.0469 8.6501 14.7307 8.75585 14.5512 8.96735C14.3717 9.17885 14.2819 9.52631 14.2819 10.0097V11.315C14.2819 11.7773 14.235 12.1655 14.1413 12.4797C14.0502 12.797 13.9095 13.0508 13.7193 13.2411C13.529 13.4315 13.2879 13.5689 12.9958 13.6535C12.7038 13.7381 12.3594 13.7804 11.9629 13.7804V12.7063C12.2737 12.7063 12.5162 12.6535 12.6904 12.5477C12.8645 12.445 12.9851 12.2848 13.0521 12.0673C13.1217 11.8528 13.1566 11.5794 13.1566 11.247V9.59731C13.1566 9.36467 13.1874 9.15015 13.249 8.95376C13.3106 8.75434 13.4245 8.58212 13.5906 8.4371C13.7568 8.28905 13.9939 8.17575 14.302 8.09719C14.6102 8.01561 15.0094 7.97482 15.4997 7.97482ZM11.9629 2.21906C12.3594 2.21906 12.7038 2.26135 12.9958 2.34595C13.2879 2.43055 13.529 2.56803 13.7193 2.75837C13.9095 2.94872 14.0502 3.20252 14.1413 3.51977C14.235 3.83399 14.2819 4.22224 14.2819 4.68452V5.98523C14.2819 6.47168 14.3717 6.82065 14.5512 7.03214C14.7307 7.24062 15.0469 7.34486 15.4997 7.34486V8.02467C15.0094 8.02467 14.6102 7.98389 14.302 7.90231C13.9939 7.82073 13.7568 7.70743 13.5906 7.5624C13.4245 7.41737 13.3106 7.24666 13.249 7.05027C13.1874 6.85086 13.1566 6.63483 13.1566 6.40218V4.7525C13.1566 4.41712 13.1217 4.14218 13.0521 3.92766C12.9851 3.71012 12.8645 3.54998 12.6904 3.44725C12.5162 3.34453 12.2737 3.29316 11.9629 3.29316V2.21906ZM15.4997 7.34486V8.6501H14.3864V7.34486H15.4997Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M7.14024 4.97928L8.50273 7.33122L9.87728 4.97928H11.1915L9.26637 7.99983L11.2076 11.0204H9.89335L8.50273 8.76283L7.11613 11.0204H5.79785L7.719 7.99983L5.82197 4.97928H7.14024Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M1.5 8.02467V7.34486C1.95282 7.34486 2.269 7.24062 2.44852 7.03214C2.62804 6.82065 2.7178 6.47168 2.7178 5.98523V4.68452C2.7178 4.22224 2.76335 3.83399 2.85445 3.51977C2.94823 3.20252 3.09024 2.94872 3.28048 2.75837C3.47072 2.56803 3.71187 2.43055 4.00392 2.34595C4.29598 2.26135 4.64029 2.21906 5.03684 2.21906V3.29316C4.72603 3.29316 4.48354 3.34453 4.30938 3.44725C4.13522 3.54998 4.0133 3.71012 3.94364 3.92766C3.87665 4.14218 3.84316 4.41712 3.84316 4.7525V6.40218C3.84316 6.63483 3.81234 6.85086 3.75072 7.05027C3.68909 7.24666 3.57522 7.41737 3.40909 7.5624C3.24297 7.70743 3.00584 7.82073 2.6977 7.90231C2.38957 7.98389 1.99033 8.02467 1.5 8.02467ZM5.03684 13.7804C4.64029 13.7804 4.29598 13.7381 4.00392 13.6535C3.71187 13.5689 3.47072 13.4315 3.28048 13.2411C3.09024 13.0508 2.94823 12.797 2.85445 12.4797C2.76335 12.1655 2.7178 11.7773 2.7178 11.315V10.0097C2.7178 9.52631 2.62804 9.17885 2.44852 8.96735C2.269 8.75585 1.95282 8.6501 1.5 8.6501V7.97482C1.99033 7.97482 2.38957 8.01561 2.6977 8.09719C3.00584 8.17575 3.24297 8.28905 3.40909 8.4371C3.57522 8.58212 3.68909 8.75434 3.75072 8.95376C3.81234 9.15015 3.84316 9.36467 3.84316 9.59731V11.247C3.84316 11.5794 3.87665 11.8528 3.94364 12.0673C4.0133 12.2848 4.13522 12.445 4.30938 12.5477C4.48354 12.6535 4.72603 12.7063 5.03684 12.7063V13.7804ZM1.5 8.6501V7.34486H2.6133V8.6501H1.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const WorkflowIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.24388 2.4018C6.24388 2.0394 6.53767 1.74561 6.90008 1.74561H10.0991C10.4614 1.74561 10.7553 2.0394 10.7553 2.4018V4.57546C10.7553 4.93787 10.4614 5.23166 10.0991 5.23166H9.31982V7.35469L10.0033 9.22664C9.90442 9.20146 9.80035 9.1761 9.6915 9.14986L9.62652 9.13422C9.30473 9.05687 8.92256 8.96501 8.61993 8.84491C8.5819 8.82981 8.54147 8.81292 8.49957 8.79391C8.45767 8.81292 8.41724 8.82981 8.3792 8.84491C8.07657 8.96501 7.6944 9.05687 7.37261 9.13422L7.30763 9.14986C7.19879 9.1761 7.09471 9.20146 6.99577 9.22664L7.67932 7.35469V5.23166H6.90008C6.53767 5.23166 6.24388 4.93787 6.24388 4.57546V2.4018ZM6.99577 9.22664C6.99577 9.22664 6.99578 9.22664 6.99577 9.22664L6.43283 10.7683H6.81806C7.18047 10.7683 7.47426 11.0622 7.47426 11.4245V13.5982C7.47426 13.9606 7.18047 14.2544 6.81806 14.2544H3.61909C3.25668 14.2544 2.96289 13.9606 2.96289 13.5982V11.4245C2.96289 11.0622 3.25668 10.7683 3.61909 10.7683H4.26617C4.2921 10.4663 4.32783 10.1494 4.37744 9.85171C4.43762 9.49063 4.52982 9.08135 4.68998 8.76102C4.93975 8.2615 5.44743 8.01751 5.7771 7.88788C6.14684 7.74249 6.57537 7.63889 6.92317 7.55505C7.24707 7.47696 7.49576 7.41679 7.67932 7.35469L6.99577 9.22664ZM6.43283 10.7683L6.99577 9.22664C6.75846 9.28705 6.55067 9.34646 6.37745 9.41458C6.22784 9.47341 6.1623 9.51712 6.14023 9.53254C6.09752 9.63631 6.04409 9.83055 5.99562 10.1214C5.96201 10.3231 5.93498 10.5439 5.91341 10.7683H6.43283ZM10.0033 9.22664L9.31982 7.35469C9.50338 7.41679 9.75206 7.47696 10.076 7.55505C10.4238 7.63889 10.8523 7.74249 11.2221 7.88788C11.5517 8.01751 12.0594 8.2615 12.3091 8.76102C12.4693 9.08135 12.5615 9.49063 12.6217 9.85171C12.6713 10.1494 12.707 10.4663 12.733 10.7683H13.38C13.7424 10.7683 14.0362 11.0622 14.0362 11.4245V13.5982C14.0362 13.9606 13.7424 14.2544 13.38 14.2544H10.1811C9.81867 14.2544 9.52488 13.9606 9.52488 13.5982V11.4245C9.52488 11.0622 9.81867 10.7683 10.1811 10.7683H10.5663L10.0033 9.22664ZM10.0033 9.22664L10.5663 10.7683H11.0857C11.0642 10.5439 11.0372 10.3231 11.0035 10.1214C10.9551 9.83055 10.9016 9.63631 10.8589 9.53254C10.8369 9.51712 10.7713 9.47341 10.6217 9.41458C10.4485 9.34646 10.2407 9.28705 10.0033 9.22664Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const WorkflowCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636V49.8363C6.67773 65.0322 31.894 77.351 62.9998 77.351C94.1055 77.351 119.322 65.0322 119.322 49.8363V35.1636Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1636C119.322 50.3595 94.1055 62.6782 62.9998 62.6782C31.894 62.6782 6.67773 50.3595 6.67773 35.1636M119.322 35.1636C119.322 19.9677 94.1055 7.64893 62.9998 7.64893C31.894 7.64893 6.67773 19.9677 6.67773 35.1636M119.322 35.1636V49.8363C119.322 65.0322 94.1055 77.351 62.9998 77.351C31.894 77.351 6.67773 65.0322 6.67773 49.8363V35.1636\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.968262C28.5152 0.968262 0.55957 15.6484 0.55957 33.7573V51.2428C0.55957 69.3517 28.5152 84.0319 63.0002 84.0319C97.4853 84.0319 125.441 69.3517 125.441 51.2428V33.7573C125.441 15.6484 97.4853 0.968262 63.0002 0.968262Z\"\n stroke=\"#707070\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M74.9374 21.357C76.2127 20.7291 78.2804 20.7291 79.5557 21.357L90.8129 26.8997C92.0882 27.5276 92.0882 28.5458 90.8129 29.1737L83.1638 32.9399C81.8885 33.5678 79.8207 33.5678 78.5454 32.9399L75.8033 31.5898L68.3324 35.2682L64.1502 39.696C63.8908 39.481 63.6138 39.2568 63.3231 39.0227L63.1495 38.883C62.2893 38.1914 61.2677 37.3701 60.6254 36.6376C60.5446 36.5456 60.4618 36.4463 60.3812 36.3407C60.1669 36.3011 59.9652 36.2603 59.7782 36.2205C58.2906 35.9043 56.6225 35.4013 55.2179 34.9777L54.9342 34.8922C54.4589 34.7491 54.0034 34.6127 53.5666 34.4849L62.5594 32.4258L70.0304 28.7473L67.2882 27.3972C66.0129 26.7692 66.0129 25.7512 67.2882 25.1232L74.9374 21.357ZM53.5666 34.4849C53.5666 34.4849 53.5666 34.4849 53.5666 34.4849L46.1603 36.1808L47.516 36.8483C48.7913 37.4762 48.7912 38.4943 47.516 39.1222L39.8668 42.8884C38.5916 43.5163 36.5238 43.5164 35.2485 42.8884L23.9913 37.3457C22.7159 36.7177 22.716 35.6996 23.9913 35.0717L31.6404 31.3055C32.9156 30.6776 34.9834 30.6776 36.2587 31.3055L38.5358 32.4267C39.6899 31.9483 40.9309 31.4611 42.153 31.0313C43.6354 30.5099 45.4001 29.9605 47.091 29.683C49.7278 29.2502 52.3729 29.7072 53.9892 30.0537C55.8019 30.4425 57.6745 31.0055 59.1934 31.4628C60.6081 31.8887 61.6949 32.2154 62.5594 32.4258L53.5666 34.4849ZM46.1603 36.1808L53.5666 34.4849C52.5189 34.1784 51.5786 33.9213 50.7293 33.7392C49.9958 33.5819 49.6114 33.5441 49.4794 33.5326C48.964 33.6384 48.0924 33.8823 46.8983 34.3023C46.0703 34.5936 45.1981 34.9293 44.3325 35.2808L46.1603 36.1808ZM64.1502 39.696L68.3324 35.2682C68.7598 35.6939 69.4232 36.229 70.2883 36.9256C71.2171 37.6735 72.3605 38.5954 73.15 39.488C73.8539 40.2838 74.7818 41.5862 73.9029 42.8844C73.3394 43.717 72.2235 44.5859 71.1648 45.3159C70.2916 45.9175 69.3021 46.5286 68.3305 47.0968L70.6077 48.218C71.8829 48.8459 71.8829 49.864 70.6077 50.4919L62.9585 54.2582C61.6833 54.8861 59.6154 54.8861 58.3402 54.2582L47.083 48.7154C45.8077 48.0875 45.8077 47.0694 47.083 46.4415L54.7321 42.6752C56.0074 42.0474 58.0751 42.0473 59.3505 42.6752L60.7062 43.3428L64.1502 39.696ZM64.1502 39.696L60.7062 43.3428L62.5339 44.2427C63.2478 43.8165 63.9298 43.3871 64.5213 42.9794C65.3742 42.3914 65.8695 41.9622 66.0846 41.7085C66.0613 41.6436 65.9844 41.4543 65.6649 41.0931C65.295 40.6749 64.773 40.212 64.1502 39.696Z\"\n fill=\"#A9A9A9\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const LatencyIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const McpServerIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.53918 9.32122C6.34324 9.51508 6.02724 9.51338 5.83338 9.31744C5.63952 9.1215 5.6412 8.80551 5.83713 8.61164L10.1958 4.29931C10.7996 3.70186 10.8017 2.72852 10.2041 2.12839L10.1899 2.11428C9.58767 1.52481 8.62251 1.53208 8.0292 2.13052L2.29396 7.91536C2.0999 8.1111 1.78388 8.11246 1.58813 7.9184C1.39239 7.72433 1.39103 7.40831 1.58509 7.21257L7.32036 1.42774C8.30005 0.439581 9.89369 0.427613 10.8881 1.40094L10.9116 1.42425C11.4942 2.00929 11.7316 2.80913 11.6232 3.56922C12.389 3.44866 13.1999 3.67918 13.7961 4.26273C14.804 5.24929 14.8147 6.86824 13.82 7.86808L8.5531 13.1619C8.50045 13.2148 8.50024 13.3002 8.55263 13.3534L9.65448 14.4717C9.84794 14.668 9.8456 14.984 9.64925 15.1775C9.45291 15.3709 9.13691 15.3686 8.94345 15.1723L7.84163 14.054C7.40505 13.6109 7.40677 12.8988 7.8455 12.4579L13.1124 7.16405C13.7161 6.55727 13.7095 5.57478 13.0979 4.97606C12.4925 4.38347 11.4942 4.40725 10.8978 5.00886L6.53918 9.32122Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.84622 2.75411C9.04697 2.56188 9.36555 2.56381 9.56395 2.76076C9.76234 2.95771 9.76658 3.27625 9.57582 3.4784L9.56661 3.48794L5.25912 7.82701C4.67023 8.42022 4.672 9.37798 5.26305 9.96904C5.85624 10.5622 6.81818 10.5615 7.41052 9.9675L11.6299 5.73599L11.6395 5.72671C11.8406 5.53493 12.1592 5.53756 12.3572 5.73496C12.5583 5.93548 12.5587 6.26104 12.3582 6.46214L8.13877 10.6937C7.14498 11.6903 5.53105 11.6915 4.53584 10.6963C3.5442 9.70461 3.54127 8.09774 4.52928 7.10248L8.83677 2.76342L8.84622 2.75411Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const FolderIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M1.5 8.5V8C1.5 7.60218 1.65804 7.22064 1.93934 6.93934C2.22064 6.65804 2.60218 6.5 3 6.5H13C13.3978 6.5 13.7794 6.65804 14.0607 6.93934C14.342 7.22064 14.5 7.60218 14.5 8V8.5M8.70667 4.20667L7.29333 2.79333C7.20048 2.70037 7.09022 2.62661 6.96886 2.57628C6.84749 2.52595 6.71739 2.50003 6.586 2.5H3C2.60218 2.5 2.22064 2.65804 1.93934 2.93934C1.65804 3.22064 1.5 3.60218 1.5 4V12C1.5 12.3978 1.65804 12.7794 1.93934 13.0607C2.22064 13.342 2.60218 13.5 3 13.5H13C13.3978 13.5 13.7794 13.342 14.0607 13.0607C14.342 12.7794 14.5 12.3978 14.5 12V6C14.5 5.60218 14.342 5.22064 14.0607 4.93934C13.7794 4.65804 13.3978 4.5 13 4.5H9.414C9.14887 4.49977 8.89402 4.39426 8.70667 4.20667Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const McpCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641V49.8368C6.67773 65.0327 31.894 77.3514 62.9998 77.3514C94.1055 77.3514 119.322 65.0327 119.322 49.8368V35.1641Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641M119.322 35.1641C119.322 19.9681 94.1055 7.64941 62.9998 7.64941C31.894 7.64941 6.67773 19.9681 6.67773 35.1641M119.322 35.1641V49.8368C119.322 65.0327 94.1055 77.3514 62.9998 77.3514C31.894 77.3514 6.67773 65.0327 6.67773 49.8368V35.1641\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.96875C28.5152 0.96875 0.55957 15.6489 0.55957 33.7578V51.2433C0.55957 69.3522 28.5152 84.0323 63.0002 84.0323C97.4853 84.0323 125.441 69.3522 125.441 51.2433V33.7578C125.441 15.6489 97.4853 0.96875 63.0002 0.96875Z\"\n stroke=\"#707070\"\n />\n <path\n d=\"M51.5215 39.9726C50.5464 40.4477 48.9738 40.4435 48.009 39.9634C47.0442 39.4833 47.0526 38.709 48.0277 38.2339L69.7191 27.6672C72.7243 26.2032 72.7347 23.8181 69.7605 22.3476L69.6898 22.313C66.6927 20.8686 61.8895 20.8864 58.9368 22.3528L30.3946 36.5278C29.4288 37.0074 27.8561 37.0107 26.882 36.5352C25.9078 36.0597 25.901 35.2853 26.8668 34.8057L55.4092 20.6308C60.2847 18.2094 68.2157 18.1801 73.1645 20.5651L73.2814 20.6222C76.1808 22.0558 77.3624 24.0157 76.8227 25.8782C80.6339 25.5828 84.6694 26.1476 87.6364 27.5775C92.6525 29.9949 92.7059 33.962 87.7554 36.4119L61.5441 49.3836C61.282 49.5133 61.281 49.7227 61.5417 49.853L67.0252 52.5932C67.988 53.0743 67.9763 53.8486 66.9992 54.3226C66.0221 54.7966 64.4495 54.7909 63.4867 54.3098L58.0033 51.5695C55.8306 50.4838 55.8392 48.7391 58.0226 47.6585L84.2339 34.6868C87.2382 33.2 87.2058 30.7925 84.1617 29.3254C81.1488 27.8734 76.1811 27.9317 73.2127 29.4058L51.5215 39.9726Z\"\n fill=\"#A9A9A9\"\n />\n <path\n d=\"M63.0028 23.8809C64.0019 23.4098 65.5873 23.4146 66.5747 23.8972C67.562 24.3798 67.5831 25.1603 66.6338 25.6556L66.5879 25.679L45.1511 36.3113C42.2204 37.7649 42.2292 40.1117 45.1707 41.56C48.1228 43.0135 52.91 43.0118 55.8578 41.5563L76.8564 31.1875L76.9037 31.1648C77.9049 30.6949 79.4903 30.7013 80.4755 31.185C81.4763 31.6764 81.4785 32.4741 80.4806 32.9669L59.4821 43.3356C54.5363 45.7777 46.5044 45.7806 41.5516 43.342C36.6166 40.9121 36.602 36.9747 41.519 34.5359L62.9558 23.9037L63.0028 23.8809Z\"\n fill=\"#A9A9A9\"\n />\n </svg>\n);\n","import React from 'react';\n\nexport const ToolCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641V49.8368C6.67773 65.0327 31.894 77.3514 62.9998 77.3514C94.1055 77.3514 119.322 65.0327 119.322 49.8368V35.1641Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641M119.322 35.1641C119.322 19.9681 94.1055 7.64941 62.9998 7.64941C31.894 7.64941 6.67773 19.9681 6.67773 35.1641M119.322 35.1641V49.8368C119.322 65.0327 94.1055 77.3514 62.9998 77.3514C31.894 77.3514 6.67773 65.0327 6.67773 49.8368V35.1641\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.96875C28.5152 0.96875 0.55957 15.6489 0.55957 33.7578V51.2433C0.55957 69.3522 28.5152 84.0323 63.0002 84.0323C97.4853 84.0323 125.441 69.3522 125.441 51.2433V33.7578C125.441 15.6489 97.4853 0.96875 63.0002 0.96875Z\"\n stroke=\"#707070\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M95.8997 32.6647C98.4806 33.9355 98.4744 36.0012 95.8997 37.2689L89.6657 40.3384C87.0848 41.6091 82.8892 41.6061 80.3146 40.3384L74.0805 37.2689C71.4996 35.9981 71.5059 33.9324 74.0805 32.6647L80.3146 29.5952C82.8955 28.3244 87.091 28.3275 89.6657 29.5952L95.8997 32.6647ZM74.0805 21.9215C76.6614 23.1923 76.6552 25.258 74.0805 26.5257L67.8465 29.5952C65.2656 30.866 61.0701 30.8629 58.4954 29.5952L52.2613 26.5257C49.6804 25.255 49.6867 23.1892 52.2613 21.9215L58.4954 18.852C61.0763 17.5813 65.2718 17.5843 67.8465 18.852L74.0805 21.9215ZM74.0805 43.4079C76.6614 44.6786 76.6552 46.7444 74.0805 48.0121L67.8465 51.0816C65.2656 52.3523 61.0701 52.3493 58.4954 51.0816L52.2613 48.0121C49.6804 46.7413 49.6867 44.6756 52.2613 43.4079L58.4954 40.3384C61.0763 39.0676 65.2718 39.0707 67.8465 40.3384L74.0805 43.4079ZM52.2613 32.6647C54.8422 33.9355 54.836 36.0012 52.2613 37.2689L46.0273 40.3384C43.4464 41.6091 39.2509 41.6061 36.6762 40.3384L30.4422 37.2689C27.8613 35.9981 27.8675 33.9324 30.4422 32.6647L36.6762 29.5952C39.2571 28.3244 43.4526 28.3275 46.0273 29.5952L52.2613 32.6647Z\"\n fill=\"#A9A9A9\"\n />\n </svg>\n);\n","export const AgentNetworkCoinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"126\" height=\"85\" viewBox=\"0 0 126 85\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641V49.8368C6.67773 65.0327 31.894 77.3514 62.9998 77.3514C94.1055 77.3514 119.322 65.0327 119.322 49.8368V35.1641Z\"\n fill=\"#2E2E2E\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M119.322 35.1641C119.322 50.36 94.1055 62.6787 62.9998 62.6787C31.894 62.6787 6.67773 50.36 6.67773 35.1641M119.322 35.1641C119.322 19.9681 94.1055 7.64941 62.9998 7.64941C31.894 7.64941 6.67773 19.9681 6.67773 35.1641M119.322 35.1641V49.8368C119.322 65.0327 94.1055 77.3514 62.9998 77.3514C31.894 77.3514 6.67773 65.0327 6.67773 49.8368V35.1641\"\n stroke=\"#424242\"\n />\n <path\n d=\"M63.0002 0.96875C28.5152 0.96875 0.55957 15.6489 0.55957 33.7578V51.2433C0.55957 69.3522 28.5152 84.0323 63.0002 84.0323C97.4853 84.0323 125.441 69.3522 125.441 51.2433V33.7578C125.441 15.6489 97.4853 0.96875 63.0002 0.96875Z\"\n stroke=\"#707070\"\n />\n <g clipPath=\"url(#clip0_23333_14744)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M79.2946 17.9539C83.0143 19.7854 83.016 22.7559 79.2979 24.5879C77.0214 25.7087 73.8794 26.1385 70.9301 25.8878L67.5296 30.2202C68.0944 30.3987 68.6321 30.6075 69.1262 30.8507C71.0847 31.815 72.0009 33.0948 71.8979 34.3581L77.2504 35.1977C77.6452 34.8727 78.1174 34.5635 78.6856 34.2835C82.4066 32.4514 88.4403 32.4485 92.1623 34.2803C95.8842 36.1128 95.8805 39.0851 92.159 40.9175C88.4373 42.7488 82.4002 42.7513 78.679 40.9191C76.7415 39.9647 75.8248 38.7009 75.9073 37.4506L70.5219 36.6045C70.1354 36.9168 69.6777 37.2145 69.1295 37.4846C68.345 37.8708 67.4527 38.1705 66.5059 38.3939L67.9312 41.984C70.1507 42.0573 72.3276 42.5087 74.0244 43.3438C77.7444 45.1754 77.7467 48.1458 74.0277 49.9778C70.3071 51.8092 64.2712 51.8095 60.551 49.9778C56.8323 48.1459 56.8351 45.1755 60.5543 43.3438C61.3581 42.9482 62.2741 42.6414 63.247 42.4167L61.8282 38.8428C59.5803 38.7777 57.3696 38.3299 55.6527 37.4846C54.1264 36.7327 53.2395 35.7882 52.9666 34.8103L43.924 34.0469C43.4596 34.6259 42.7547 35.1702 41.8041 35.6385C38.0834 37.4696 32.0473 37.4701 28.3273 35.6385C24.6089 33.8068 24.6123 30.8363 28.3306 29.0046C32.0508 27.1737 38.0806 27.1737 41.8008 29.0046C43.3459 29.7653 44.2412 30.7224 44.5033 31.7129L53.5098 32.4747C53.9742 31.8832 54.6868 31.3279 55.656 30.8507C57.6687 29.8601 60.357 29.4079 62.9902 29.4892L66.5783 24.9218C66.3174 24.8179 66.0637 24.7073 65.8212 24.5879C62.1022 22.7559 62.1045 19.7856 65.8245 17.9539C69.5447 16.1235 75.5747 16.1232 79.2946 17.9539ZM38.4299 30.6643C36.5715 29.75 33.5599 29.75 31.7015 30.6643C29.8447 31.5793 29.8414 33.0638 31.6982 33.9788C33.5565 34.8938 36.5742 34.8933 38.4332 33.9788C40.2906 33.0635 40.2883 31.5793 38.4299 30.6643ZM70.6536 45.0035C68.7951 44.0893 65.7836 44.0893 63.9251 45.0035C62.0676 45.9185 62.0647 47.4029 63.9218 48.318C65.7804 49.2332 68.7979 49.2329 70.6569 48.3181C72.5142 47.4027 72.5119 45.9185 70.6536 45.0035ZM65.7553 32.5104C63.8969 31.5961 60.8853 31.5961 59.0269 32.5104C57.1685 33.4254 57.1662 34.9096 59.0236 35.8249C60.8824 36.7402 63.8998 36.7402 65.7586 35.8249C67.616 34.9096 67.6137 33.4254 65.7553 32.5104ZM88.7915 35.94C86.9338 35.0261 83.9184 35.0264 82.0564 35.9432C80.1965 36.8601 80.1945 38.3451 82.0498 39.2594C83.9067 40.1736 86.9255 40.1738 88.7882 39.2578C90.6507 38.3407 90.649 36.8546 88.7915 35.94ZM75.9238 19.6136C74.0656 18.6995 71.0538 18.6998 69.1953 19.6136C67.3369 20.5286 67.3347 22.0129 69.192 22.9282C71.0509 23.8434 74.0682 23.8434 75.9271 22.9282C77.7836 22.0128 77.7818 20.5285 75.9238 19.6136Z\"\n fill=\"#A9A9A9\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_23333_14744\">\n <rect\n width=\"59.3185\"\n height=\"59.3185\"\n fill=\"white\"\n transform=\"matrix(0.897148 0.441731 -0.897148 0.441731 65.3042 6.51953)\"\n />\n </clipPath>\n </defs>\n </svg>\n);\n","import { useCallback, useRef, useState } from 'react';\nimport { toast } from 'sonner';\n\ntype UseCopyToClipboardProps = {\n text: string;\n copyMessage?: string;\n};\n\nexport function useCopyToClipboard({ text, copyMessage = 'Copied to clipboard!' }: UseCopyToClipboardProps) {\n const [isCopied, setIsCopied] = useState(false);\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const handleCopy = useCallback(() => {\n navigator.clipboard\n .writeText(text)\n .then(() => {\n toast.success(copyMessage);\n setIsCopied(true);\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n timeoutRef.current = setTimeout(() => {\n setIsCopied(false);\n }, 2000);\n })\n .catch(() => {\n toast.error('Failed to copy to clipboard.');\n });\n }, [text, copyMessage]);\n\n return { isCopied, handleCopy };\n}\n","'use client';\n\nimport { Check, Copy } from 'lucide-react';\n\nimport { Button } from '../../components/ui/button';\nimport { useCopyToClipboard } from '../../hooks/use-copy-to-clipboard';\nimport { cn } from '../../lib/utils';\n\ntype CopyButtonProps = {\n content: string;\n copyMessage?: string;\n className?: string;\n};\n\nexport function CopyButton({ content, copyMessage, className }: CopyButtonProps) {\n const { isCopied, handleCopy } = useCopyToClipboard({\n text: content,\n copyMessage,\n });\n\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className={cn('relative h-6 w-6', className)}\n aria-label=\"Copy to clipboard\"\n onClick={handleCopy}\n >\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <Check className={cn('h-4 w-4 transition-transform ease-in-out', isCopied ? 'scale-100' : 'scale-0')} />\n </div>\n <Copy className={cn('h-4 w-4 transition-transform ease-in-out', isCopied ? 'scale-0' : 'scale-100')} />\n </Button>\n );\n}\n","import { jsonLanguage } from '@codemirror/lang-json';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport CodeMirror from '@uiw/react-codemirror';\nimport clsx from 'clsx';\nimport { useMemo } from 'react';\nimport { CopyButton } from './copy-button';\n\nexport const useCodemirrorTheme = () => {\n return useMemo(\n () =>\n draculaInit({\n settings: {\n fontFamily: 'var(--geist-mono)',\n fontSize: '0.8rem',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n background: 'transparent',\n gutterForeground: '#939393',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n }),\n [],\n );\n};\n\nexport const SyntaxHighlighter = ({ data, className }: { data: Record<string, unknown>; className?: string }) => {\n const formattedCode = JSON.stringify(data, null, 2);\n const theme = useCodemirrorTheme();\n\n return (\n <div className={clsx('rounded-md bg-surface4 p-1 font-mono relative', className)}>\n <CopyButton content={formattedCode} className=\"absolute top-2 right-2\" />\n <CodeMirror value={formattedCode} theme={theme} extensions={[jsonLanguage]} />\n </div>\n );\n};\n\nexport async function highlight(code: string, language: string) {\n const { codeToTokens, bundledLanguages } = await import('shiki');\n\n if (!(language in bundledLanguages)) return null;\n\n const { tokens } = await codeToTokens(code, {\n lang: language as keyof typeof bundledLanguages,\n defaultColor: false,\n themes: {\n light: 'github-light',\n dark: 'github-dark',\n },\n });\n\n return tokens;\n}\n","import { ToolCallContentPartComponent } from '@assistant-ui/react';\nimport { ChevronUpIcon } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { Badge } from '@/ds/components/Badge';\nimport { Icon, ToolsIcon } from '@/ds/icons';\nimport { cn } from '@/lib/utils';\nimport { SyntaxHighlighter } from '../ui/syntax-highlighter';\n\nexport const ToolFallback: ToolCallContentPartComponent = ({ toolName, argsText, result }) => {\n const [isCollapsed, setIsCollapsed] = useState(true);\n\n let argSlot;\n try {\n const parsedArgs = JSON.parse(argsText);\n argSlot = <SyntaxHighlighter data={parsedArgs} />;\n } catch {\n argSlot = <pre className=\"whitespace-pre-wrap\">{argsText}</pre>;\n }\n\n return (\n <div>\n <button onClick={() => setIsCollapsed(s => !s)} className=\"flex items-center gap-2\">\n <Icon>\n <ChevronUpIcon className={cn('transition-all', isCollapsed ? 'rotate-90' : 'rotate-180')} />\n </Icon>\n <Badge icon={<ToolsIcon className=\"text-[#ECB047]\" />}>{toolName}</Badge>\n </button>\n\n {!isCollapsed && (\n <div className=\"pt-2\">\n <div className=\"border-sm border-border1 rounded-lg bg-surface4\">\n <div className=\"px-4 border-b-sm border-border1 py-2\">\n <p className=\"font-medium pb-2\">Tool arguments</p>\n {argSlot}\n </div>\n\n {result !== undefined && (\n <div className=\"px-4 py-2\">\n <p className=\"font-medium pb-2\">Tool result</p>\n {typeof result === 'string' ? (\n <pre className=\"whitespace-pre-wrap\">{result}</pre>\n ) : (\n <SyntaxHighlighter data={result} />\n )}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n","import { ActionBarPrimitive, MessagePrimitive, ToolCallContentPartComponent, useMessage } from '@assistant-ui/react';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { FC } from 'react';\n\nimport { MarkdownText } from './markdown-text';\nimport { TooltipIconButton } from './tooltip-icon-button';\nimport { ToolFallback } from '@/components/assistant-ui/tool-fallback';\n\nexport const AssistantMessage: FC<{ ToolFallback?: ToolCallContentPartComponent }> = ({\n ToolFallback: ToolFallbackCustom,\n}) => {\n const data = useMessage();\n const isSolelyToolCall = data.content.length === 1 && data.content[0].type === 'tool-call';\n\n return (\n <MessagePrimitive.Root className=\"max-w-full\">\n <div className=\"text-icon6 text-ui-lg leading-ui-lg\">\n <MessagePrimitive.Content\n components={{\n Text: MarkdownText,\n tools: { Fallback: ToolFallbackCustom || ToolFallback },\n }}\n />\n </div>\n\n <div className=\"h-6 pt-1\">{!isSolelyToolCall && <AssistantActionBar />}</div>\n </MessagePrimitive.Root>\n );\n};\n\nconst AssistantActionBar: FC = () => {\n return (\n <ActionBarPrimitive.Root\n hideWhenRunning\n autohide=\"always\"\n autohideFloat=\"single-branch\"\n className=\"flex gap-1 items-center transition-all relative\"\n >\n {/* <MessagePrimitive.If speaking={false}>\n <ActionBarPrimitive.Speak asChild>\n <TooltipIconButton tooltip=\"Read aloud\">\n <AudioLinesIcon />\n </TooltipIconButton>\n </ActionBarPrimitive.Speak>\n </MessagePrimitive.If>\n <MessagePrimitive.If speaking>\n <ActionBarPrimitive.StopSpeaking asChild>\n <TooltipIconButton tooltip=\"Stop\">\n <StopCircleIcon />\n </TooltipIconButton>\n </ActionBarPrimitive.StopSpeaking>\n </MessagePrimitive.If> */}\n <ActionBarPrimitive.Copy asChild>\n <TooltipIconButton tooltip=\"Copy\" className=\"bg-transparent text-icon3 hover:text-icon6\">\n <MessagePrimitive.If copied>\n <CheckIcon />\n </MessagePrimitive.If>\n <MessagePrimitive.If copied={false}>\n <CopyIcon />\n </MessagePrimitive.If>\n </TooltipIconButton>\n </ActionBarPrimitive.Copy>\n {/* <ActionBarPrimitive.Reload asChild>\n <TooltipIconButton tooltip=\"Refresh\">\n <RefreshCwIcon />\n </TooltipIconButton>\n </ActionBarPrimitive.Reload> */}\n </ActionBarPrimitive.Root>\n );\n};\n","import * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport clsx from 'clsx';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={clsx('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import { useState } from 'react';\n\nimport { useComposerRuntime } from '@assistant-ui/react';\nimport { useEffect } from 'react';\n\nexport const useHasAttachments = () => {\n const composer = useComposerRuntime();\n const [hasAttachments, setHasAttachments] = useState(false);\n\n useEffect(() => {\n composer.subscribe(() => {\n const attachments = composer.getState().attachments;\n setHasAttachments(attachments.length > 0);\n });\n }, [composer]);\n\n return hasAttachments;\n};\n","'use client';\n\nimport { AttachmentPrimitive, ComposerPrimitive, MessagePrimitive, useAttachment } from '@assistant-ui/react';\nimport { TooltipProvider } from '@radix-ui/react-tooltip';\nimport { CircleXIcon, FileIcon, FileText, PaperclipIcon } from 'lucide-react';\nimport { PropsWithChildren, useEffect, useState, type FC } from 'react';\n\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { Dialog, DialogTitle, DialogTrigger, DialogOverlay, DialogPortal, DialogContent } from '@/components/ui/dialog';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { useShallow } from 'zustand/shallow';\nimport { Icon } from '@/ds/icons';\nimport { useHasAttachments } from './use-has-attachments';\n\nconst useFileSrc = (file: File | undefined) => {\n const [src, setSrc] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n if (!file) {\n setSrc(undefined);\n return;\n }\n\n const objectUrl = URL.createObjectURL(file);\n setSrc(objectUrl);\n\n return () => {\n URL.revokeObjectURL(objectUrl);\n };\n }, [file]);\n\n return src;\n};\n\nconst useAttachmentSrc = () => {\n const { file, src } = useAttachment(\n useShallow((a): { file?: File; src?: string } => {\n if (a.type !== 'image') return {};\n if (a.file) return { file: a.file };\n const src = a.content?.filter(c => c.type === 'image')[0]?.image;\n if (!src) return {};\n return { src };\n }),\n );\n\n return useFileSrc(file) ?? src;\n};\n\ntype AttachmentPreviewProps = {\n src: string;\n};\n\nconst AttachmentPreview: FC<AttachmentPreviewProps> = ({ src }) => {\n return (\n <div className=\"overflow-hidden w-full\">\n <img src={src} className=\"object-contain aspect-ratio h-full w-full\" alt=\"Preview\" />\n </div>\n );\n};\n\nconst AttachmentPreviewDialog: FC<PropsWithChildren> = ({ children }) => {\n const src = useAttachmentSrc();\n\n if (!src) return children;\n\n return (\n <Dialog>\n <DialogTrigger className=\"hover:bg-accent/50 cursor-pointer transition-colors\" asChild>\n {children}\n </DialogTrigger>\n <DialogPortal>\n <DialogOverlay />\n\n <DialogContent className=\"max-w-5xl w-full max-h-[80%]\">\n <DialogTitle className=\"aui-sr-only\">Image Attachment Preview</DialogTitle>\n <AttachmentPreview src={src} />\n </DialogContent>\n </DialogPortal>\n </Dialog>\n );\n};\n\nconst AttachmentThumbnail: FC = () => {\n const isImage = useAttachment(a => a.type === 'image');\n const document = useAttachment(a => (a.type === 'document' ? a : undefined));\n const src = useAttachmentSrc();\n const canRemove = useAttachment(a => a.source !== 'message');\n\n return (\n <TooltipProvider>\n <Tooltip>\n <AttachmentPrimitive.Root className=\"relative\">\n <AttachmentPreviewDialog>\n <TooltipTrigger asChild>\n <div className=\"h-full w-full aspect-ratio overflow-hidden rounded-lg\">\n {isImage ? (\n <div className=\"rounded-lg border-sm border-border1 overflow-hidden\">\n <img src={src} className=\"object-cover aspect-ratio size-16\" alt=\"Preview\" height={64} width={64} />\n </div>\n ) : document?.contentType === 'application/pdf' ? (\n <div className=\"rounded-lg border-sm border-border1 flex items-center justify-center\">\n <FileText className=\"text-accent2\" />\n </div>\n ) : (\n <div className=\"rounded-lg border-sm border-border1 flex items-center justify-center\">\n <FileIcon className=\"text-icon3\" />\n </div>\n )}\n </div>\n </TooltipTrigger>\n </AttachmentPreviewDialog>\n {canRemove && <AttachmentRemove />}\n </AttachmentPrimitive.Root>\n <TooltipContent side=\"top\">\n <AttachmentPrimitive.Name />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n\nconst AttachmentRemove: FC = () => {\n return (\n <AttachmentPrimitive.Remove asChild>\n <TooltipIconButton\n tooltip=\"Remove file\"\n className=\"absolute -right-3 -top-3 hover:bg-transparent rounded-full bg-surface1 rounded-full p-1\"\n side=\"top\"\n >\n <Icon>\n <CircleXIcon />\n </Icon>\n </TooltipIconButton>\n </AttachmentPrimitive.Remove>\n );\n};\n\nexport const UserMessageAttachments: FC = () => {\n return <MessagePrimitive.Attachments components={{ Attachment: InMessageAttachment }} />;\n};\n\nconst InMessageAttachment = () => {\n const isImage = useAttachment(a => a.type === 'image');\n const document = useAttachment(a => (a.type === 'document' ? a : undefined));\n const src = useAttachmentSrc();\n\n return (\n <TooltipProvider>\n <Tooltip>\n <AttachmentPrimitive.Root className=\"relative pt-4\">\n <AttachmentPreviewDialog>\n <TooltipTrigger asChild>\n <div className=\"h-full w-full aspect-ratio overflow-hidden rounded-lg\">\n {isImage ? (\n <div className=\"rounded-lg border-sm border-border1 overflow-hidden\">\n <img src={src} className=\"object-cover aspect-ratio max-h-[140px] max-w-[320px]\" alt=\"Preview\" />\n </div>\n ) : document?.contentType === 'application/pdf' ? (\n <div className=\"rounded-lg border-sm border-border1 flex items-center justify-center p-4\">\n <FileText className=\"text-accent2\" />\n </div>\n ) : (\n <div className=\"rounded-lg border-sm border-border1 flex items-center justify-center p-4\">\n <FileIcon className=\"text-icon3\" />\n </div>\n )}\n </div>\n </TooltipTrigger>\n </AttachmentPreviewDialog>\n </AttachmentPrimitive.Root>\n <TooltipContent side=\"top\">\n <AttachmentPrimitive.Name />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n\nexport const ComposerAttachments: FC = () => {\n const hasAttachments = useHasAttachments();\n\n if (!hasAttachments) return null;\n\n return (\n <div className=\"flex w-full flex-row items-center gap-4 h-24\">\n <ComposerPrimitive.Attachments components={{ Attachment: AttachmentThumbnail }} />\n </div>\n );\n};\n\nexport const ComposerAddAttachment: FC = () => {\n return (\n <ComposerPrimitive.AddAttachment asChild>\n <TooltipIconButton\n className=\"my-2.5 size-8 p-2 transition-opacity ease-in\"\n tooltip=\"Add Attachment\"\n variant=\"ghost\"\n >\n <PaperclipIcon />\n </TooltipIconButton>\n </ComposerPrimitive.AddAttachment>\n );\n};\n","import { MessagePrimitive } from '@assistant-ui/react';\nimport { UserMessageAttachments } from './attachment';\n\nexport const UserMessage = () => {\n return (\n <MessagePrimitive.Root className=\"w-full flex items-end pb-4 flex-col\">\n {/* <UserActionBar /> */}\n\n <div className=\"max-w-[366px] px-5 py-3 text-icon6 text-ui-lg leading-ui-lg rounded-lg bg-surface3\">\n <MessagePrimitive.Content />\n </div>\n\n <UserMessageAttachments />\n\n {/* <BranchPicker className=\"col-span-full col-start-1 row-start-3 -mr-1 justify-end\" /> */}\n </MessagePrimitive.Root>\n );\n};\n","import React, { useRef } from 'react';\n\nexport interface UseAutoscrollOptions {\n enabled?: boolean;\n}\n\nexport const useAutoscroll = (ref: React.RefObject<HTMLElement | null>, { enabled = true }: UseAutoscrollOptions) => {\n const shouldScrollRef = useRef(enabled);\n\n React.useEffect(() => {\n if (!enabled) return;\n if (!ref?.current) return;\n\n const area = ref.current;\n\n const observer = new MutationObserver(() => {\n if (shouldScrollRef.current) {\n area.scrollTo({ top: area.scrollHeight, behavior: 'smooth' });\n }\n });\n\n observer.observe(area, {\n childList: true, // observe direct children changes\n subtree: true, // observe all descendants\n characterData: true, // observe text content changes\n });\n\n const handleScroll = (e: Event) => {\n const scrollElement = e.target as HTMLElement;\n const currentPosition = scrollElement.scrollTop + scrollElement.clientHeight;\n const totalHeight = scrollElement.scrollHeight;\n const isAtEnd = currentPosition >= totalHeight - 1;\n\n if (isAtEnd) {\n shouldScrollRef.current = true;\n } else {\n shouldScrollRef.current = false;\n }\n };\n\n area.addEventListener('scroll', handleScroll);\n\n return () => {\n area.removeEventListener('scroll', handleScroll);\n observer.disconnect();\n };\n }, [enabled, ref]);\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { FontSizes } from '../../tokens';\n\nexport interface TxtProps extends React.HTMLAttributes<HTMLDivElement | HTMLLabelElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'label';\n variant?: keyof typeof FontSizes;\n font?: 'mono';\n htmlFor?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nconst variants = {\n 'header-md': 'text-header-md leading-header-md',\n 'ui-lg': 'text-ui-lg leading-ui-lg',\n 'ui-md': 'text-ui-md leading-ui-md',\n 'ui-sm': 'text-ui-sm leading-ui-sm',\n 'ui-xs': 'text-ui-xs leading-ui-xs',\n};\n\nconst fonts = {\n mono: 'font-mono',\n};\n\nexport const Txt = ({ as: Root = 'p', className, variant = 'ui-md', font, ...props }: TxtProps) => {\n return <Root className={clsx(variants[variant], font && fonts[font], className)} {...props} />;\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport interface SpeechRecognitionState {\n isListening: boolean;\n transcript: string;\n error: string | null;\n}\n\nexport interface UseSpeechRecognitionArgs {\n language?: string;\n}\n\nexport const useSpeechRecognition = ({ language = 'en-US' }: UseSpeechRecognitionArgs = {}) => {\n const speechRecognitionRef = useRef<any>(null);\n const [state, setState] = useState<SpeechRecognitionState>({\n isListening: false,\n transcript: '',\n error: null,\n });\n\n const start = () => {\n if (!speechRecognitionRef.current) return;\n speechRecognitionRef.current.start();\n };\n\n const stop = () => {\n if (!speechRecognitionRef.current) return;\n speechRecognitionRef.current.stop();\n };\n\n useEffect(() => {\n if (!('webkitSpeechRecognition' in window) && !('SpeechRecognition' in window)) {\n setState(prev => ({ ...prev, error: 'Speech Recognition not supported in this browser' }));\n return;\n }\n\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition;\n const recognition = new SpeechRecognition();\n speechRecognitionRef.current = recognition;\n\n // Configuration\n recognition.continuous = true; // Keep listening\n recognition.lang = language; // Language\n\n // Event handlers\n recognition.onstart = () => {\n setState(prev => ({ ...prev, isListening: true }));\n };\n\n recognition.onresult = (event: any) => {\n let finalTranscript = '';\n\n for (let i = event.resultIndex; i < event.results.length; i++) {\n const transcript = event.results[i][0].transcript;\n if (event.results[i].isFinal) {\n finalTranscript += transcript + ' ';\n }\n }\n\n setState(prev => ({ ...prev, transcript: finalTranscript }));\n };\n\n recognition.onerror = (event: any) => {\n setState(prev => ({ ...prev, error: `Error: ${event.error}` }));\n };\n\n recognition.onend = () => setState(prev => ({ ...prev, isListening: false }));\n }, [language]);\n\n return {\n ...state,\n start,\n stop,\n };\n};\n","import {\n ComposerPrimitive,\n MessagePrimitive,\n ThreadPrimitive,\n ToolCallContentPartComponent,\n useComposerRuntime,\n} from '@assistant-ui/react';\nimport { ArrowUp, Mic, PlusIcon } from 'lucide-react';\nimport type { FC } from 'react';\n\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar';\nimport { Button } from '@/components/ui/button';\n\nimport { AssistantMessage } from './assistant-message';\nimport { UserMessage } from './user-message';\nimport { useEffect, useRef } from 'react';\nimport { useAutoscroll } from '@/hooks/use-autoscroll';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon, InfoIcon } from '@/ds/icons';\nimport { useSpeechRecognition } from '@/hooks/use-speech-recognition';\nimport { ComposerAttachments } from './attachment';\n\nexport interface ThreadProps {\n ToolFallback?: ToolCallContentPartComponent;\n agentName?: string;\n hasMemory?: boolean;\n showFileSupport?: boolean;\n}\n\nexport const Thread = ({ ToolFallback, agentName, hasMemory, showFileSupport }: ThreadProps) => {\n const areaRef = useRef<HTMLDivElement>(null);\n useAutoscroll(areaRef, { enabled: true });\n\n const WrappedAssistantMessage = (props: MessagePrimitive.Root.Props) => {\n return <AssistantMessage {...props} ToolFallback={ToolFallback} />;\n };\n\n return (\n <ThreadWrapper>\n <ThreadPrimitive.Viewport ref={areaRef} autoScroll={false} className=\"overflow-y-scroll scroll-smooth h-full\">\n <ThreadWelcome agentName={agentName} />\n\n <div className=\"max-w-[568px] w-full mx-auto px-4 pb-7\">\n <ThreadPrimitive.Messages\n components={{\n UserMessage: UserMessage,\n EditComposer: EditComposer,\n AssistantMessage: WrappedAssistantMessage,\n }}\n />\n </div>\n\n <ThreadPrimitive.If empty={false}>\n <div />\n </ThreadPrimitive.If>\n </ThreadPrimitive.Viewport>\n\n <Composer hasMemory={hasMemory} showFileSupport={showFileSupport} />\n </ThreadWrapper>\n );\n};\n\nconst ThreadWrapper = ({ children }: { children: React.ReactNode }) => {\n return (\n <ThreadPrimitive.Root className=\"grid grid-rows-[1fr_auto] h-full overflow-y-auto\">{children}</ThreadPrimitive.Root>\n );\n};\n\nexport interface ThreadWelcomeProps {\n agentName?: string;\n}\n\nconst ThreadWelcome = ({ agentName }: ThreadWelcomeProps) => {\n const safeAgentName = agentName ?? '';\n const words = safeAgentName.split(' ') ?? [];\n\n let initials = 'A';\n\n if (words.length === 2) {\n initials = `${words[0][0]}${words[1][0]}`;\n } else if (safeAgentName.length > 0) {\n initials = `${safeAgentName[0]}`;\n } else {\n initials = 'A';\n }\n\n return (\n <ThreadPrimitive.Empty>\n <div className=\"flex w-full flex-grow flex-col items-center justify-center\">\n <Avatar>\n <AvatarFallback>{initials}</AvatarFallback>\n </Avatar>\n <p className=\"mt-4 font-medium\">How can I help you today?</p>\n </div>\n </ThreadPrimitive.Empty>\n );\n};\n\nconst Composer: FC<{ hasMemory?: boolean; showFileSupport?: boolean }> = ({ hasMemory, showFileSupport }) => {\n return (\n <div className=\"mx-4\">\n <ComposerPrimitive.Root>\n <div className=\"max-w-[568px] w-full mx-auto px-2 py-3\">\n <ComposerAttachments />\n </div>\n\n <div className=\"bg-surface3 rounded-lg border-sm border-border1 py-4 mt-auto max-w-[568px] w-full mx-auto px-4\">\n <ComposerPrimitive.Input asChild className=\"w-full\">\n <textarea\n className=\"text-ui-lg leading-ui-lg placeholder:text-icon3 text-icon6 bg-transparent focus:outline-none resize-none\"\n autoFocus\n placeholder=\"Enter your message...\"\n name=\"\"\n id=\"\"\n ></textarea>\n </ComposerPrimitive.Input>\n <div className=\"flex justify-end gap-2\">\n <SpeechInput />\n <ComposerAction showFileSupport={showFileSupport} />\n </div>\n </div>\n </ComposerPrimitive.Root>\n\n {!hasMemory && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 flex gap-2 pt-1 max-w-[568px] w-full mx-auto border-t items-start\">\n <Icon className=\"transform translate-y-[0.1rem]\">\n <InfoIcon />\n </Icon>\n Memory is not enabled. The conversation will not be persisted.\n </Txt>\n )}\n </div>\n );\n};\n\nconst SpeechInput = () => {\n const composerRuntime = useComposerRuntime();\n const { start, stop, isListening, transcript } = useSpeechRecognition();\n\n useEffect(() => {\n if (!transcript) return;\n\n composerRuntime.setText(transcript);\n }, [composerRuntime, transcript]);\n\n return (\n <TooltipIconButton\n type=\"button\"\n tooltip={isListening ? 'Stop dictation' : 'Start dictation'}\n variant=\"ghost\"\n className=\"rounded-full\"\n onClick={() => (isListening ? stop() : start())}\n >\n {isListening ? <CircleStopIcon /> : <Mic className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />}\n </TooltipIconButton>\n );\n};\n\nconst ComposerAction: FC<{ showFileSupport?: boolean }> = ({ showFileSupport }) => {\n return (\n <>\n {showFileSupport && (\n <ComposerPrimitive.AddAttachment asChild>\n <TooltipIconButton tooltip=\"Add attachment\" variant=\"ghost\" className=\"rounded-full\">\n <PlusIcon className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />\n </TooltipIconButton>\n </ComposerPrimitive.AddAttachment>\n )}\n\n <ThreadPrimitive.If running={false}>\n <ComposerPrimitive.Send asChild>\n <TooltipIconButton\n tooltip=\"Send\"\n variant=\"default\"\n className=\"rounded-full border-sm border-[#363636] bg-[#292929]\"\n >\n <ArrowUp className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />\n </TooltipIconButton>\n </ComposerPrimitive.Send>\n </ThreadPrimitive.If>\n <ThreadPrimitive.If running>\n <ComposerPrimitive.Cancel asChild>\n <TooltipIconButton tooltip=\"Cancel\" variant=\"default\">\n <CircleStopIcon />\n </TooltipIconButton>\n </ComposerPrimitive.Cancel>\n </ThreadPrimitive.If>\n </>\n );\n};\n\nconst EditComposer: FC = () => {\n return (\n <ComposerPrimitive.Root>\n <ComposerPrimitive.Input />\n\n <div>\n <ComposerPrimitive.Cancel asChild>\n <Button variant=\"ghost\">Cancel</Button>\n </ComposerPrimitive.Cancel>\n <ComposerPrimitive.Send asChild>\n <Button>Send</Button>\n </ComposerPrimitive.Send>\n </div>\n </ComposerPrimitive.Root>\n );\n};\n\nconst CircleStopIcon = () => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" width=\"16\" height=\"16\">\n <rect width=\"10\" height=\"10\" x=\"3\" y=\"3\" rx=\"2\" />\n </svg>\n );\n};\n","export const fileToBase64 = async (file: File): Promise<string> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => {\n const result = reader.result;\n if (typeof result === 'string') {\n resolve(result);\n } else {\n reject(new Error('Failed to convert file to base64.'));\n }\n };\n\n reader.onerror = error => {\n reject(error);\n };\n\n reader.readAsDataURL(file);\n });\n};\n","import { AttachmentAdapter, PendingAttachment, CompleteAttachment } from '@assistant-ui/react';\n\nexport class PDFAttachmentAdapter implements AttachmentAdapter {\n public accept = 'application/pdf';\n\n async add({ file }: { file: File }): Promise<PendingAttachment> {\n // Validate file size\n const maxSize = 20 * 1024 * 1024; // 20MB limit\n if (file.size > maxSize) {\n throw new Error('PDF size exceeds 20MB limit');\n }\n\n return {\n id: crypto.randomUUID(),\n type: 'document',\n name: file.name,\n file,\n status: {\n type: 'running',\n reason: 'uploading',\n progress: 0,\n },\n contentType: 'application/pdf',\n };\n }\n\n async send(attachment: PendingAttachment): Promise<CompleteAttachment> {\n // Option 1: Extract text from PDF (requires pdf parsing library)\n // const text = await this.extractTextFromPDF(attachment.file);\n\n // Option 2: Convert to base64 for API processing\n const base64Data = await this.fileToBase64(attachment.file);\n\n return {\n id: attachment.id,\n type: 'document',\n name: attachment.name,\n content: [\n {\n type: 'text',\n text: base64Data,\n },\n ],\n status: { type: 'complete' },\n contentType: 'application/pdf',\n };\n }\n\n async remove(attachment: PendingAttachment): Promise<void> {\n // Cleanup if needed\n }\n\n private async fileToBase64(file: File): Promise<string> {\n const arrayBuffer = await file.arrayBuffer();\n const bytes = new Uint8Array(arrayBuffer);\n let binary = '';\n bytes.forEach(byte => {\n binary += String.fromCharCode(byte);\n });\n return btoa(binary);\n }\n\n // Optional: Extract text from PDF using a library like pdf.js\n private async extractTextFromPDF(file: File): Promise<string> {\n // Implementation would use pdf.js or similar\n // This is a placeholder\n return 'Extracted PDF text content';\n }\n}\n","'use client';\n\nimport {\n useExternalStoreRuntime,\n ThreadMessageLike,\n AppendMessage,\n AssistantRuntimeProvider,\n SimpleImageAttachmentAdapter,\n CompositeAttachmentAdapter,\n SimpleTextAttachmentAdapter,\n} from '@assistant-ui/react';\nimport { useState, ReactNode, useEffect } from 'react';\nimport { RuntimeContext } from '@mastra/core/di';\n\nimport { ChatProps } from '@/types';\n\nimport { CoreUserMessage } from '@mastra/core';\nimport { fileToBase64 } from '@/lib/file';\nimport { useMastraClient } from '@/contexts/mastra-client-context';\nimport { PDFAttachmentAdapter } from '@/components/assistant-ui/attachment-adapters/pdfs-adapter';\n\nconst convertMessage = (message: ThreadMessageLike): ThreadMessageLike => {\n return message;\n};\n\nconst convertToAIAttachments = async (attachments: AppendMessage['attachments']): Promise<Array<CoreUserMessage>> => {\n const promises = attachments\n .filter(attachment => attachment.type === 'image' || attachment.type === 'document')\n .map(async attachment => {\n if (attachment.type === 'document') {\n if (attachment.contentType === 'application/pdf') {\n return {\n role: 'user' as const,\n content: [\n {\n type: 'file' as const,\n // @ts-expect-error - TODO: fix this type issue somehow\n data: attachment.content?.[0]?.text || '',\n mimeType: attachment.contentType,\n filename: attachment.name,\n },\n ],\n };\n }\n\n return {\n role: 'user' as const,\n // @ts-expect-error - TODO: fix this type issue somehow\n content: attachment.content[0]?.text || '',\n };\n }\n\n return {\n role: 'user' as const,\n\n content: [\n {\n type: 'image' as const,\n image: await fileToBase64(attachment.file!),\n mimeType: attachment.file!.type,\n },\n ],\n };\n });\n\n return Promise.all(promises);\n};\n\nexport function MastraRuntimeProvider({\n children,\n agentId,\n initialMessages,\n agentName,\n memory,\n threadId,\n refreshThreadList,\n modelSettings = {},\n chatWithGenerate,\n runtimeContext,\n}: Readonly<{\n children: ReactNode;\n}> &\n ChatProps) {\n const [isRunning, setIsRunning] = useState(false);\n const [messages, setMessages] = useState<ThreadMessageLike[]>([]);\n const [currentThreadId, setCurrentThreadId] = useState<string | undefined>(threadId);\n\n const { frequencyPenalty, presencePenalty, maxRetries, maxSteps, maxTokens, temperature, topK, topP, instructions } =\n modelSettings;\n\n const runtimeContextInstance = new RuntimeContext();\n Object.entries(runtimeContext ?? {}).forEach(([key, value]) => {\n runtimeContextInstance.set(key, value);\n });\n\n useEffect(() => {\n const hasNewInitialMessages = initialMessages && initialMessages?.length > messages?.length;\n if (\n messages.length === 0 ||\n currentThreadId !== threadId ||\n (hasNewInitialMessages && currentThreadId === threadId)\n ) {\n if (initialMessages && threadId && memory) {\n const convertedMessages: ThreadMessageLike[] = initialMessages\n ?.map((message: any) => {\n const toolInvocationsAsContentParts = (message.toolInvocations || []).map((toolInvocation: any) => ({\n type: 'tool-call',\n toolCallId: toolInvocation?.toolCallId,\n toolName: toolInvocation?.toolName,\n args: toolInvocation?.args,\n result: toolInvocation?.result,\n }));\n\n const attachmentsAsContentParts = (message.experimental_attachments || []).map((image: any) => ({\n type: image.contentType.startsWith(`image/`)\n ? 'image'\n : image.contentType.startsWith(`audio/`)\n ? 'audio'\n : 'file',\n mimeType: image.contentType,\n image: image.url,\n }));\n\n return {\n ...message,\n content: [\n ...(typeof message.content === 'string' ? [{ type: 'text', text: message.content }] : []),\n ...toolInvocationsAsContentParts,\n ...attachmentsAsContentParts,\n ],\n };\n })\n .filter(Boolean);\n setMessages(convertedMessages);\n setCurrentThreadId(threadId);\n }\n }\n }, [initialMessages, threadId, memory]);\n\n const mastra = useMastraClient();\n\n const agent = mastra.getAgent(agentId);\n\n const onNew = async (message: AppendMessage) => {\n if (message.content[0]?.type !== 'text') throw new Error('Only text messages are supported');\n\n const attachments = await convertToAIAttachments(message.attachments);\n\n const input = message.content[0].text;\n setMessages(currentConversation => [\n ...currentConversation,\n { role: 'user', content: input, attachments: message.attachments },\n ]);\n setIsRunning(true);\n\n try {\n if (chatWithGenerate) {\n const generateResponse = await agent.generate({\n messages: [\n {\n role: 'user',\n content: input,\n },\n ...attachments,\n ],\n runId: agentId,\n frequencyPenalty,\n presencePenalty,\n maxRetries,\n maxSteps,\n maxTokens,\n temperature,\n topK,\n topP,\n instructions,\n runtimeContext: runtimeContextInstance,\n ...(memory ? { threadId, resourceId: agentId } : {}),\n });\n if (generateResponse.response) {\n const latestMessage = generateResponse.response.messages.reduce(\n (acc, message) => {\n const _content = Array.isArray(acc.content) ? acc.content : [];\n if (typeof message.content === 'string') {\n return {\n ...acc,\n content: [\n ..._content,\n {\n type: 'text',\n text: message.content,\n },\n ],\n } as ThreadMessageLike;\n }\n if (message.role === 'assistant') {\n const toolCallContent = Array.isArray(message.content)\n ? message.content.find(content => content.type === 'tool-call')\n : undefined;\n\n if (toolCallContent) {\n const newContent = _content.map(c => {\n if (c.type === 'tool-call' && c.toolCallId === toolCallContent?.toolCallId) {\n return { ...c, ...toolCallContent };\n }\n return c;\n });\n\n const containsToolCall = newContent.some(c => c.type === 'tool-call');\n return {\n ...acc,\n content: containsToolCall ? newContent : [..._content, toolCallContent],\n } as ThreadMessageLike;\n }\n\n const textContent = Array.isArray(message.content)\n ? message.content.find(content => content.type === 'text' && content.text)\n : undefined;\n\n if (textContent) {\n return {\n ...acc,\n content: [..._content, textContent],\n } as ThreadMessageLike;\n }\n }\n\n if (message.role === 'tool') {\n const toolResult = Array.isArray(message.content)\n ? message.content.find(content => content.type === 'tool-result')\n : undefined;\n\n if (toolResult) {\n const newContent = _content.map(c => {\n if (c.type === 'tool-call' && c.toolCallId === toolResult?.toolCallId) {\n return { ...c, result: toolResult.result };\n }\n return c;\n });\n const containsToolCall = newContent.some(c => c.type === 'tool-call');\n\n return {\n ...acc,\n content: containsToolCall\n ? newContent\n : [\n ..._content,\n { type: 'tool-result', toolCallId: toolResult.toolCallId, result: toolResult.result },\n ],\n } as ThreadMessageLike;\n }\n\n return {\n ...acc,\n content: [..._content, toolResult],\n } as ThreadMessageLike;\n }\n return acc;\n },\n { role: 'assistant', content: [] } as ThreadMessageLike,\n );\n setMessages(currentConversation => [...currentConversation, latestMessage]);\n }\n } else {\n const response = await agent.stream({\n messages: [\n {\n role: 'user',\n content: input,\n },\n ...attachments,\n ],\n runId: agentId,\n frequencyPenalty,\n presencePenalty,\n maxRetries,\n maxSteps,\n maxTokens,\n temperature,\n topK,\n topP,\n instructions,\n runtimeContext: runtimeContextInstance,\n ...(memory ? { threadId, resourceId: agentId } : {}),\n });\n\n if (!response.body) {\n throw new Error('No response body');\n }\n\n let content = '';\n let assistantMessageAdded = false;\n let assistantToolCallAddedForUpdater = false;\n let assistantToolCallAddedForContent = false;\n\n function updater() {\n setMessages(currentConversation => {\n const message: ThreadMessageLike = {\n role: 'assistant',\n content: [{ type: 'text', text: content }],\n };\n\n if (!assistantMessageAdded) {\n assistantMessageAdded = true;\n if (assistantToolCallAddedForUpdater) {\n assistantToolCallAddedForUpdater = false;\n }\n return [...currentConversation, message];\n }\n\n if (assistantToolCallAddedForUpdater) {\n // add as new message item in messages array if tool call was added\n assistantToolCallAddedForUpdater = false;\n return [...currentConversation, message];\n }\n return [...currentConversation.slice(0, -1), message];\n });\n }\n\n await response.processDataStream({\n onTextPart(value) {\n if (assistantToolCallAddedForContent) {\n // start new content value to add as next message item in messages array\n assistantToolCallAddedForContent = false;\n content = value;\n } else {\n content += value;\n }\n updater();\n },\n async onToolCallPart(value) {\n // Update the messages state\n setMessages(currentConversation => {\n // Get the last message (should be the assistant's message)\n const lastMessage = currentConversation[currentConversation.length - 1];\n\n // Only process if the last message is from the assistant\n if (lastMessage && lastMessage.role === 'assistant') {\n // Create a new message with the tool call part\n const updatedMessage: ThreadMessageLike = {\n ...lastMessage,\n content: Array.isArray(lastMessage.content)\n ? [\n ...lastMessage.content,\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ]\n : [\n ...(typeof lastMessage.content === 'string'\n ? [{ type: 'text', text: lastMessage.content }]\n : []),\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ],\n };\n\n assistantToolCallAddedForUpdater = true;\n assistantToolCallAddedForContent = true;\n\n // Replace the last message with the updated one\n return [...currentConversation.slice(0, -1), updatedMessage];\n }\n\n // If there's no assistant message yet, create one\n const newMessage: ThreadMessageLike = {\n role: 'assistant',\n content: [\n { type: 'text', text: content },\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ],\n };\n assistantToolCallAddedForUpdater = true;\n assistantToolCallAddedForContent = true;\n return [...currentConversation, newMessage];\n });\n },\n async onToolResultPart(value: any) {\n // Update the messages state\n setMessages(currentConversation => {\n // Get the last message (should be the assistant's message)\n const lastMessage = currentConversation[currentConversation.length - 1];\n\n // Only process if the last message is from the assistant and has content array\n if (lastMessage && lastMessage.role === 'assistant' && Array.isArray(lastMessage.content)) {\n // Find the tool call content part that this result belongs to\n const updatedContent = lastMessage.content.map(part => {\n if (typeof part === 'object' && part.type === 'tool-call' && part.toolCallId === value.toolCallId) {\n return {\n ...part,\n result: value.result,\n };\n }\n return part;\n });\n\n // Create a new message with the updated content\n const updatedMessage: ThreadMessageLike = {\n ...lastMessage,\n content: updatedContent,\n };\n // Replace the last message with the updated one\n return [...currentConversation.slice(0, -1), updatedMessage];\n }\n return currentConversation;\n });\n },\n onErrorPart(error) {\n throw new Error(error);\n },\n });\n }\n\n setIsRunning(false);\n setTimeout(() => {\n refreshThreadList?.();\n }, 500);\n } catch (error) {\n console.error('Error occurred in MastraRuntimeProvider', error);\n setIsRunning(false);\n setMessages(currentConversation => [\n ...currentConversation,\n { role: 'assistant', content: [{ type: 'text', text: `Error: ${error}` as string }] },\n ]);\n }\n };\n\n const runtime = useExternalStoreRuntime<any>({\n isRunning,\n messages,\n convertMessage,\n onNew,\n adapters: {\n attachments: new CompositeAttachmentAdapter([\n new SimpleImageAttachmentAdapter(),\n new SimpleTextAttachmentAdapter(),\n new PDFAttachmentAdapter(),\n ]),\n },\n });\n\n return <AssistantRuntimeProvider runtime={runtime}> {children} </AssistantRuntimeProvider>;\n}\n","import { useState, useEffect } from 'react';\nimport { ModelSettings } from '@/types';\n\nexport interface AgentModelSettingsStateProps {\n initialModelSettings?: ModelSettings;\n initialChatWithGenerate?: boolean;\n agentId: string;\n}\n\nexport const defaultModelSettings: ModelSettings = {\n maxRetries: 2,\n maxSteps: 5,\n temperature: 0.5,\n topP: 1,\n};\n\nexport function useAgentModelSettingsState({ agentId }: AgentModelSettingsStateProps) {\n const [modelSettings, setModelSettingsState] = useState<ModelSettings | undefined>(undefined);\n const [chatWithGenerate, setChatWithGenerateState] = useState<boolean>(false);\n\n const LOCAL_STORAGE_KEY = `mastra-agent-store-${agentId}`;\n\n useEffect(() => {\n try {\n const stored = localStorage.getItem(LOCAL_STORAGE_KEY);\n if (stored) {\n const parsed = JSON.parse(stored);\n setModelSettingsState(parsed.modelSettings ?? undefined);\n setChatWithGenerateState(parsed.chatWithGenerate ?? false);\n }\n } catch (e) {\n // ignore\n console.error(e);\n }\n\n // Only run on mount or when initialSettings changes\n }, [LOCAL_STORAGE_KEY]);\n\n useEffect(() => {\n if (modelSettings) {\n localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify({ modelSettings, chatWithGenerate, agentId }));\n }\n }, [modelSettings, chatWithGenerate, LOCAL_STORAGE_KEY]);\n\n const setModelSettings = (modelSettingsValue: ModelSettings) =>\n setModelSettingsState(prev => ({ ...prev, ...modelSettingsValue }));\n\n const setChatWithGenerate = (chatWithGenerateValue: boolean) => setChatWithGenerateState(chatWithGenerateValue);\n\n const resetAll = () => {\n setModelSettingsState(defaultModelSettings);\n setChatWithGenerate(false);\n };\n\n return {\n modelSettings,\n chatWithGenerate,\n setModelSettings,\n setChatWithGenerate,\n resetAll,\n };\n}\n","import { createContext, ReactNode, useContext } from 'react';\nimport { ModelSettings } from '@/types';\n\nimport {\n useAgentModelSettingsState,\n defaultModelSettings,\n} from '@/domains/agents/hooks/use-agent-model-settings-state';\n\ntype AgentContextType = {\n modelSettings: ModelSettings;\n chatWithGenerate: boolean;\n setModelSettings: (modelSettings: ModelSettings) => void;\n resetModelSettings: () => void;\n setChatWithGenerate: (chatWithGenerate: boolean) => void;\n};\n\nexport const AgentSettingsContext = createContext<AgentContextType>({} as AgentContextType);\n\nexport interface AgentSettingsProviderProps {\n children: ReactNode;\n agentId: string;\n}\n\nexport function AgentSettingsProvider({ children, agentId }: AgentSettingsProviderProps) {\n const { modelSettings, setModelSettings, chatWithGenerate, setChatWithGenerate, resetAll } =\n useAgentModelSettingsState({\n agentId,\n });\n\n const onChangeModelSettings = (modelSettings: ModelSettings) => {\n setModelSettings(modelSettings);\n };\n\n const onChangeChatWithGenerate = (chatWithGenerate: boolean) => {\n setChatWithGenerate(chatWithGenerate);\n };\n\n const onReset = () => {\n resetAll();\n };\n\n return (\n <AgentSettingsContext.Provider\n value={{\n modelSettings: modelSettings ?? defaultModelSettings,\n setModelSettings: onChangeModelSettings,\n resetModelSettings: onReset,\n chatWithGenerate: chatWithGenerate ?? false,\n setChatWithGenerate: onChangeChatWithGenerate,\n }}\n >\n {children}\n </AgentSettingsContext.Provider>\n );\n}\n\nexport const useAgentSettings = () => {\n return useContext(AgentSettingsContext);\n};\n","import { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\n\ninterface PlaygroundStore {\n runtimeContext: Record<string, any>;\n setRuntimeContext: (runtimeContext: Record<string, any>) => void;\n}\n\nexport const usePlaygroundStore = create<PlaygroundStore>()(\n persist(\n set => ({\n runtimeContext: {},\n setRuntimeContext: runtimeContext => set({ runtimeContext }),\n }),\n {\n name: 'mastra-playground-store',\n },\n ),\n);\n","import { Thread } from '@/components/assistant-ui/thread';\n\nimport { MastraRuntimeProvider } from '@/services/mastra-runtime-provider';\nimport { ChatProps } from '@/types';\nimport { useAgentSettings } from '../context/agent-context';\nimport { usePlaygroundStore } from '@/store/playground-store';\n\nexport const AgentChat = ({\n agentId,\n agentName,\n threadId,\n initialMessages,\n memory,\n refreshThreadList,\n showFileSupport,\n}: ChatProps) => {\n const { modelSettings, chatWithGenerate } = useAgentSettings();\n const { runtimeContext } = usePlaygroundStore();\n return (\n <MastraRuntimeProvider\n agentId={agentId}\n agentName={agentName}\n threadId={threadId}\n initialMessages={initialMessages}\n memory={memory}\n refreshThreadList={refreshThreadList}\n modelSettings={modelSettings}\n chatWithGenerate={chatWithGenerate}\n runtimeContext={runtimeContext}\n >\n <Thread agentName={agentName ?? ''} hasMemory={memory} showFileSupport={showFileSupport} />\n </MastraRuntimeProvider>\n );\n};\n","import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',\n secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive: 'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',\n outline: 'text-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n","import { Copy } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nimport { Button } from './button';\n\ninterface CopyableCell {\n content: string;\n label: string;\n multiline?: boolean;\n}\n\nexport function CopyableContent({ content, label, multiline = false }: CopyableCell) {\n const handleCopy = () => {\n navigator.clipboard.writeText(content);\n };\n\n return (\n <div className=\"group relative flex items-start gap-2\">\n <span className={cn('text-sm text-mastra-el-4', multiline ? 'whitespace-pre-wrap' : 'truncate')}>{content}</span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"opacity-0 group-hover:opacity-100 transition-opacity shrink-0 -mt-1\"\n onClick={e => {\n e.stopPropagation();\n handleCopy();\n }}\n aria-label={`Copy ${label}`}\n >\n <Copy className=\"h-3 w-3\" />\n </Button>\n </div>\n );\n}\n","import { format, formatDistanceToNow } from 'date-fns';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\n\nexport function FormattedDate({ date }: { date: string }) {\n const formattedDate = {\n relativeTime: formatDistanceToNow(new Date(date), { addSuffix: true }),\n fullDate: format(new Date(date), 'PPpp'),\n };\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger className=\"text-left text-sm text-mastra-el-4\">{formattedDate.relativeTime}</TooltipTrigger>\n <TooltipContent className=\"bg-mastra-bg-1 text-mastra-el-1\">\n <p className=\"text-sm\">{formattedDate.fullDate}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n","import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport clsx from 'clsx';\n\nconst inputVariants = cva(\n 'flex w-full text-icon6 rounded-lg border bg-transparent shadow-sm focus-visible:ring-ring transition-colors focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-sm border-border1 placeholder:text-icon3',\n filled: 'border-sm bg-inputFill border-border1 placeholder:text-icon3',\n unstyled:\n 'border-0 bg-transparent placeholder:text-icon3 focus-visible:ring-transparent focus-visible:outline-none',\n },\n customSize: {\n default: 'px-[13px] text-[calc(13_/_16_*_1rem)] h-8',\n sm: 'h-[30px] px-[13px] text-xs',\n lg: 'h-10 px-[17px] text-[calc(13_/_16_*_1rem)]',\n },\n },\n defaultVariants: {\n variant: 'default',\n customSize: 'default',\n },\n },\n);\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement>, VariantProps<typeof inputVariants> {\n testId?: string;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, customSize, testId, variant, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={clsx(className, inputVariants({ variant, customSize, className }))}\n data-testid={testId}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = 'Input';\n\nexport { Input, inputVariants };\n","import { Badge } from './badge';\n\nexport function ScoreIndicator({ score }: { score: number }) {\n return <Badge variant=\"secondary\">{score.toFixed(2)}</Badge>;\n}\n","import * as React from 'react';\n\nimport { motion } from 'motion/react';\n\nimport { cn } from '../../lib/utils';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <table ref={ref} className={cn('w-full caption-bottom text-sm border-spacing-0', className)} {...props} />\n ),\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => <thead ref={ref} className={cn('[&_tr]:border-b-[0.5px]', className)} {...props} />,\n);\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n ),\n);\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)} {...props} />\n ),\n);\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b-[0.5px] border-mastra-border-1 transition-colors hover:bg-muted/50 data-[state=selected]:bg-mastra-bg-4/70',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n ),\n);\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <td ref={ref} className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)} {...props} />\n ),\n);\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\n ({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n ),\n);\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n","'use client';\n\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => <TabsPrimitive.List ref={ref} className={cn(className)} {...props} />);\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => <TabsPrimitive.Trigger ref={ref} className={cn(className)} {...props} />);\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import { ChevronRight, RefreshCcwIcon, Search, SortAsc, SortDesc } from 'lucide-react';\nimport React, { useState } from 'react';\n\nimport { Badge } from '@/components/ui/badge';\nimport { Button } from '@/components/ui/button';\nimport { CopyableContent } from '@/components/ui/copyable-content';\nimport { FormattedDate } from '@/components/ui/formatted-date';\nimport { Input } from '@/components/ui/input';\nimport { ScoreIndicator } from '@/components/ui/score-indicator';\nimport { Table, TableHeader, TableHead, TableBody, TableCell, TableRow } from '@/components/ui/table';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';\n\nimport { cn } from '@/lib/utils';\n\nimport { AnimatePresence } from 'motion/react';\nimport { Evals, SortConfig, GroupedEvals } from '@/domains/evals/types';\n\nconst scrollableContentClass = cn(\n 'relative overflow-y-auto overflow-x-hidden invisible hover:visible focus:visible',\n '[&::-webkit-scrollbar]:w-1',\n '[&::-webkit-scrollbar-track]:bg-transparent',\n '[&::-webkit-scrollbar-thumb]:rounded-full',\n '[&::-webkit-scrollbar-thumb]:bg-mastra-border/20',\n '[&>*]:visible',\n);\n\nconst tabIndicatorClass = cn(\n 'px-4 py-2 text-sm transition-all border-b-2 border-transparent',\n 'data-[state=active]:border-white data-[state=active]:text-white font-medium',\n 'data-[state=inactive]:text-mastra-el-4 hover:data-[state=inactive]:text-mastra-el-2',\n 'focus-visible:outline-none',\n);\n\nconst tabContentClass = cn('data-[state=inactive]:mt-0 min-h-0 h-full grid grid-rows-[1fr]');\n\nexport interface AgentEvalsProps {\n liveEvals: Array<Evals>;\n ciEvals: Array<Evals>;\n\n onRefetchLiveEvals: () => void;\n onRefetchCiEvals: () => void;\n}\n\nexport function AgentEvals({ liveEvals, ciEvals, onRefetchLiveEvals, onRefetchCiEvals }: AgentEvalsProps) {\n const [activeTab, setActiveTab] = useState<'live' | 'ci'>('live');\n\n function handleRefresh() {\n if (activeTab === 'live') return onRefetchLiveEvals();\n\n return onRefetchCiEvals();\n }\n\n return (\n <Tabs\n value={activeTab}\n onValueChange={value => setActiveTab(value as 'live' | 'ci')}\n className=\"grid grid-rows-[auto_1fr] h-full min-h-0 pb-2\"\n >\n <div className=\"border-b border-mastra-border/10\">\n <TabsList className=\"bg-transparent border-0 h-auto mx-4\">\n <TabsTrigger value=\"live\" className={tabIndicatorClass}>\n Live\n </TabsTrigger>\n <TabsTrigger value=\"ci\" className={tabIndicatorClass}>\n CI\n </TabsTrigger>\n </TabsList>\n </div>\n <TabsContent value=\"live\" className={tabContentClass}>\n <EvalTable evals={liveEvals} isCIMode={false} onRefresh={handleRefresh} />\n </TabsContent>\n <TabsContent value=\"ci\" className={tabContentClass}>\n <EvalTable evals={ciEvals} isCIMode={true} onRefresh={handleRefresh} />\n </TabsContent>\n </Tabs>\n );\n}\n\ninterface EvalTableProps {\n evals: Evals[];\n isCIMode?: boolean;\n onRefresh: () => void;\n}\n\nfunction EvalTable({ evals, isCIMode = false, onRefresh }: EvalTableProps) {\n const [expandedMetrics, setExpandedMetrics] = useState<Set<string>>(new Set());\n const [searchTerm, setSearchTerm] = useState('');\n const [sortConfig, setSortConfig] = useState<SortConfig>({ field: 'metricName', direction: 'asc' });\n\n return (\n <div className=\"min-h-0 grid grid-rows-[auto_1fr]\">\n <div className=\"flex items-center gap-4 p-4 rounded-lg\">\n <div className=\"relative flex-1\">\n <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-mastra-el-3\" />\n <Input\n id=\"search-input\"\n placeholder=\"Search metrics, inputs, or outputs...\"\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n className=\"pl-10\"\n />\n </div>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {evals.length} Total Evaluations\n </Badge>\n <Button variant=\"ghost\" size=\"icon\" onClick={onRefresh} className=\"h-9 w-9\">\n <RefreshCcwIcon className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div className=\"overflow-auto\">\n <Table className=\"w-full\">\n <TableHeader className=\"bg-mastra-bg-2 h-[var(--table-header-height)] sticky top-0 z-10\">\n <TableRow className=\"border-gray-6 border-b-[0.1px] text-[0.8125rem]\">\n <TableHead className=\"w-12 h-12\"></TableHead>\n <TableHead\n className=\"min-w-[200px] max-w-[30%] text-mastra-el-3 cursor-pointer\"\n onClick={() => toggleSort('metricName')}\n >\n <div className=\"flex items-center\">Metric {getSortIcon('metricName')}</div>\n </TableHead>\n <TableHead className=\"flex-1 text-mastra-el-3\" />\n <TableHead className=\"w-48 text-mastra-el-3 cursor-pointer\" onClick={() => toggleSort('averageScore')}>\n <div className=\"flex items-center\">Average Score {getSortIcon('averageScore')}</div>\n </TableHead>\n <TableHead className=\"w-48 text-mastra-el-3\">Evaluations</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody className=\"border-b border-gray-6 relative\">\n <AnimatePresence mode=\"wait\" presenceAffectsLayout={false}>\n {groupEvals(evals).length === 0 ? (\n <TableRow>\n <TableCell className=\"h-12 w-16\"></TableCell>\n <TableCell colSpan={4} className=\"h-32 px-4 text-center text-mastra-el-3\">\n <div className=\"flex flex-col items-center gap-2\">\n <Search className=\"size-5\" />\n <p>No evaluations found</p>\n {searchTerm && <p className=\"text-sm\">Try adjusting your search terms</p>}\n </div>\n </TableCell>\n </TableRow>\n ) : (\n groupEvals(evals).map(group => (\n <React.Fragment key={group.metricName}>\n <TableRow\n className=\"border-b-gray-6 border-b-[0.1px] text-[0.8125rem] cursor-pointer hover:bg-mastra-bg-3\"\n onClick={() => toggleMetric(group.metricName)}\n >\n <TableCell className=\"w-12\">\n <div className=\"h-8 w-full flex items-center justify-center\">\n <div\n className={cn(\n 'transform transition-transform duration-200',\n expandedMetrics.has(group.metricName) ? 'rotate-90' : '',\n )}\n >\n <ChevronRight className=\"h-4 w-4 text-mastra-el-5\" />\n </div>\n </div>\n </TableCell>\n <TableCell className=\"min-w-[200px] max-w-[30%] font-medium text-mastra-el-5\">\n {group.metricName}\n </TableCell>\n <TableCell className=\"flex-1 text-mastra-el-5\" />\n <TableCell className=\"w-48 text-mastra-el-5\">\n <ScoreIndicator score={group.averageScore} />\n </TableCell>\n <TableCell className=\"w-48 text-mastra-el-5\">\n <Badge variant=\"secondary\">{group.evals.length}</Badge>\n </TableCell>\n </TableRow>\n\n {expandedMetrics.has(group.metricName) && (\n <TableRow>\n <TableCell\n colSpan={5 + (getHasReasons(group.evals) ? 1 : 0) + (isCIMode ? 1 : 0)}\n className=\"p-0\"\n >\n <div className=\"bg-mastra-bg-3 rounded-lg m-2\">\n <div className=\"w-full\">\n <Table className=\"w-full\">\n <TableHeader>\n <TableRow className=\"text-[0.7rem] text-mastra-el-3 hover:bg-transparent\">\n <TableHead className=\"pl-12 w-[120px]\">Timestamp</TableHead>\n <TableHead className=\"w-[300px]\">Instructions</TableHead>\n <TableHead className=\"w-[300px]\">Input</TableHead>\n <TableHead className=\"w-[300px]\">Output</TableHead>\n <TableHead className=\"w-[80px]\">Score</TableHead>\n {getHasReasons(group.evals) && <TableHead className=\"w-[250px]\">Reason</TableHead>}\n {isCIMode && <TableHead className=\"w-[120px]\">Test Name</TableHead>}\n </TableRow>\n </TableHeader>\n <TableBody>\n {group.evals.map((evaluation, index) => (\n <TableRow\n key={`${group.metricName}-${index}`}\n className=\"text-[0.8125rem] hover:bg-mastra-bg-2/50\"\n >\n <TableCell className=\"pl-12 text-mastra-el-4 align-top py-4\">\n <FormattedDate date={evaluation.createdAt} />\n </TableCell>\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <div className={cn('max-w-[300px] max-h-[200px]', scrollableContentClass)}>\n <CopyableContent\n content={evaluation.instructions}\n label=\"instructions\"\n multiline\n />\n </div>\n </TableCell>\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <div className={cn('max-w-[300px] max-h-[200px]', scrollableContentClass)}>\n <CopyableContent content={evaluation.input} label=\"input\" multiline />\n </div>\n </TableCell>\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <div className={cn('max-w-[300px] max-h-[200px]', scrollableContentClass)}>\n <CopyableContent content={evaluation.output} label=\"output\" multiline />\n </div>\n </TableCell>\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <ScoreIndicator score={evaluation.result.score} />\n </TableCell>\n {getHasReasons(group.evals) && (\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n <div className={cn('max-w-[300px] max-h-[200px]', scrollableContentClass)}>\n <CopyableContent\n content={evaluation.result.info?.reason || ''}\n label=\"reason\"\n multiline\n />\n </div>\n </TableCell>\n )}\n {isCIMode && (\n <TableCell className=\"text-mastra-el-4 align-top py-4\">\n {evaluation.testInfo?.testName && (\n <Badge variant=\"secondary\" className=\"text-xs\">\n {evaluation.testInfo.testName}\n </Badge>\n )}\n </TableCell>\n )}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </div>\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n ))\n )}\n </AnimatePresence>\n </TableBody>\n </Table>\n </div>\n </div>\n );\n\n function getHasReasons(groupEvals: Evals[]) {\n return groupEvals.some(eval_ => eval_.result.info?.reason);\n }\n\n function toggleMetric(metricName: string) {\n const newExpanded = new Set(expandedMetrics);\n if (newExpanded.has(metricName)) {\n newExpanded.delete(metricName);\n } else {\n newExpanded.add(metricName);\n }\n setExpandedMetrics(newExpanded);\n }\n\n function toggleSort(field: SortConfig['field']) {\n setSortConfig(prev => ({\n field,\n direction: prev.field === field && prev.direction === 'asc' ? 'desc' : 'asc',\n }));\n }\n\n function getSortIcon(field: SortConfig['field']) {\n if (sortConfig.field !== field) return null;\n return sortConfig.direction === 'asc' ? (\n <SortAsc className=\"h-4 w-4 ml-1\" />\n ) : (\n <SortDesc className=\"h-4 w-4 ml-1\" />\n );\n }\n\n function groupEvals(evaluations: Evals[]): GroupedEvals[] {\n let groups = evaluations.reduce((groups: GroupedEvals[], evaluation) => {\n const existingGroup = groups.find(g => g.metricName === evaluation.metricName);\n if (existingGroup) {\n existingGroup.evals.push(evaluation);\n existingGroup.averageScore =\n existingGroup.evals.reduce((sum, e) => sum + e.result.score, 0) / existingGroup.evals.length;\n } else {\n groups.push({\n metricName: evaluation.metricName,\n averageScore: evaluation.result.score,\n evals: [evaluation],\n });\n }\n return groups;\n }, []);\n\n // Apply search filter\n if (searchTerm) {\n groups = groups.filter(\n group =>\n group.metricName.toLowerCase().includes(searchTerm.toLowerCase()) ||\n group.evals.some(\n metric =>\n metric.input?.toLowerCase().includes(searchTerm.toLowerCase()) ||\n metric.output?.toLowerCase().includes(searchTerm.toLowerCase()) ||\n metric.instructions?.toLowerCase().includes(searchTerm.toLowerCase()),\n ),\n );\n }\n\n // Apply sorting\n groups.sort((a, b) => {\n const direction = sortConfig.direction === 'asc' ? 1 : -1;\n switch (sortConfig.field) {\n case 'metricName':\n return direction * a.metricName.localeCompare(b.metricName);\n case 'averageScore':\n return direction * (a.averageScore - b.averageScore);\n default:\n return 0;\n }\n });\n\n return groups;\n }\n}\n","import { createContext, useState } from 'react';\n\nimport type { Span, RefinedTrace } from '../types';\n\nexport type TraceContextType = {\n isOpen: boolean;\n setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n trace: Span[] | null;\n setTrace: React.Dispatch<React.SetStateAction<Span[] | null>>;\n traces: RefinedTrace[];\n currentTraceIndex: number;\n setCurrentTraceIndex: React.Dispatch<React.SetStateAction<number>>;\n nextTrace: () => void;\n prevTrace: () => void;\n span: Span | null;\n setSpan: React.Dispatch<React.SetStateAction<Span | null>>;\n clearData: () => void;\n};\n\nexport const TraceContext = createContext<TraceContextType>({} as TraceContextType);\n\nexport function TraceProvider({\n children,\n initialTraces: traces = [],\n}: {\n children: React.ReactNode;\n initialTraces?: RefinedTrace[];\n}) {\n const [open, setOpen] = useState(false);\n const [trace, setTrace] = useState<Span[] | null>(null);\n const [currentTraceIndex, setCurrentTraceIndex] = useState(0);\n const [span, setSpan] = useState<Span | null>(null);\n\n const nextTrace = () => {\n if (currentTraceIndex < traces.length - 1) {\n const nextIndex = currentTraceIndex + 1;\n setCurrentTraceIndex(nextIndex);\n const nextTrace = traces[nextIndex].trace;\n setTrace(nextTrace);\n const parentSpan = nextTrace.find(span => span.parentSpanId === null) || nextTrace[0];\n setSpan(parentSpan);\n }\n };\n\n const prevTrace = () => {\n if (currentTraceIndex > 0) {\n const prevIndex = currentTraceIndex - 1;\n setCurrentTraceIndex(prevIndex);\n const prevTrace = traces[prevIndex].trace;\n setTrace(prevTrace);\n const parentSpan = prevTrace.find(span => span.parentSpanId === null) || prevTrace[0];\n setSpan(parentSpan);\n }\n };\n\n const clearData = () => {\n setOpen(false);\n setTrace(null);\n setSpan(null);\n };\n\n return (\n <TraceContext.Provider\n value={{\n isOpen: open,\n setIsOpen: setOpen,\n trace,\n setTrace,\n traces,\n currentTraceIndex,\n setCurrentTraceIndex,\n nextTrace,\n prevTrace,\n span,\n setSpan,\n clearData,\n }}\n >\n {children}\n </TraceContext.Provider>\n );\n}\n","import clsx from 'clsx';\nimport React from 'react';\n\nexport interface TableProps {\n className?: string;\n children: React.ReactNode;\n size?: 'default' | 'small';\n}\n\nconst rowSize = {\n default: '[&>tbody>tr]:h-table-row',\n small: '[&>tbody>tr]:h-table-row-small',\n};\n\nexport const Table = ({ className, children, size = 'default' }: TableProps) => {\n return <table className={clsx('w-full', rowSize[size], className)}>{children}</table>;\n};\n\nexport interface TheadProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Thead = ({ className, children }: TheadProps) => {\n return (\n <thead>\n <tr className={clsx('h-table-header border-b-sm border-border1', className)}>{children}</tr>\n </thead>\n );\n};\n\nexport interface ThProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Th = ({ className, children, ...props }: ThProps) => {\n return (\n <th\n className={clsx(\n 'text-icon3 text-ui-sm h-full text-left font-normal uppercase first:pl-5 last:pr-5 whitespace-nowrap',\n className,\n )}\n {...props}\n >\n {children}\n </th>\n );\n};\n\nexport interface TbodyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Tbody = ({ className, children }: TbodyProps) => {\n return <tbody className={clsx('', className)}>{children}</tbody>;\n};\n\nexport interface RowProps {\n className?: string;\n children: React.ReactNode;\n selected?: boolean;\n onClick?: () => void;\n}\n\nexport const Row = ({ className, children, selected = false, onClick }: RowProps) => {\n return (\n <tr\n className={clsx(\n 'border-b-sm border-border1 hover:bg-surface3',\n selected && 'bg-surface4',\n onClick && 'cursor-pointer',\n className,\n )}\n onClick={onClick}\n >\n {children}\n </tr>\n );\n};\n","export const formatDateCell = (date: Date) => {\n // Format the month as a short text representation\n const month = new Intl.DateTimeFormat('en-US', { month: 'short' }).format(date).toUpperCase();\n const day = date.getDate();\n\n const formattedDay = `${month} ${day}`;\n\n const time = new Intl.DateTimeFormat('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false, // Use 24-hour format\n }).format(date);\n\n return { day: formattedDay, time };\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { Txt } from '../Txt';\n\nimport { formatDateCell } from './utils';\n\nexport interface CellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Cell = ({ className, children, ...props }: CellProps) => {\n return (\n <td className={clsx('text-icon5 first:pl-5 last:pr-5', className)} {...props}>\n <div className={clsx('flex h-full w-full shrink-0 items-center')}>{children}</div>\n </td>\n );\n};\n\nexport const TxtCell = ({ className, children }: CellProps) => {\n return (\n <Cell className={className}>\n <Txt as=\"span\" variant=\"ui-md\" className=\"w-full truncate\">\n {children}\n </Txt>\n </Cell>\n );\n};\n\nexport const UnitCell = ({ className, children, unit }: CellProps & { unit: string }) => {\n return (\n <Cell className={className}>\n <div className=\"flex min-w-0 items-center\">\n <Txt as=\"span\" variant=\"ui-md\" className=\"shrink-0\">\n {children}\n </Txt>\n <Txt as=\"span\" variant=\"ui-sm\" className=\"text-icon3 w-full truncate\">\n {unit}\n </Txt>\n </div>\n </Cell>\n );\n};\n\nexport interface DateTimeCellProps extends Omit<CellProps, 'children'> {\n dateTime: Date;\n}\n\nexport const DateTimeCell = ({ dateTime, ...props }: DateTimeCellProps) => {\n const { day, time } = formatDateCell(dateTime);\n\n return (\n <Cell {...props}>\n <div className=\"shrink-0\">\n <Txt as=\"span\" variant=\"ui-sm\" className=\"text-icon3\">\n {day}\n </Txt>{' '}\n <Txt as=\"span\" variant=\"ui-md\">\n {time}\n </Txt>\n </div>\n </Cell>\n );\n};\n\nexport interface EntryCellProps extends Omit<CellProps, 'children'> {\n name: React.ReactNode;\n description?: React.ReactNode;\n icon: React.ReactNode;\n meta?: React.ReactNode;\n}\n\nexport const EntryCell = ({ name, description, icon, meta, ...props }: EntryCellProps) => {\n return (\n <Cell {...props}>\n <div className=\"flex items-center gap-[14px]\">\n <Icon size=\"lg\" className=\"text-icon5\">\n {icon}\n </Icon>\n\n <div className=\"flex flex-col gap-0\">\n <Txt as=\"span\" variant=\"ui-md\" className=\"text-icon6 font-medium !leading-tight\">\n {name}\n </Txt>\n {description && (\n <Txt as=\"span\" variant=\"ui-xs\" className=\"text-icon3 w-full max-w-[300px] truncate !leading-tight\">\n {description}\n </Txt>\n )}\n </div>\n {meta}\n </div>\n </Cell>\n );\n};\n","import { Span } from '../types';\nimport { useContext } from 'react';\nimport { TraceContext } from '../context/trace-context';\n\nexport const useOpenTrace = () => {\n const {\n setTrace,\n isOpen: open,\n setIsOpen: setOpen,\n trace: currentTrace,\n setSpan,\n setCurrentTraceIndex,\n } = useContext(TraceContext);\n\n const openTrace = (trace: Span[], traceIndex: number) => {\n setTrace(trace);\n const parentSpan = trace.find(span => span.parentSpanId === null) || trace[0];\n setSpan(parentSpan);\n setCurrentTraceIndex(traceIndex);\n if (open && currentTrace?.[0]?.id !== trace[0].id) return;\n setOpen(prev => !prev);\n };\n\n return { openTrace };\n};\n","export const toSigFigs = (num: number, sigFigs: number) => {\n // toPrecision returns significant digits formatted with potentially exponential notation\n // Number() converts the exponential notation to a regular number\n return Number(num.toPrecision(sigFigs));\n};\n","import { Skeleton } from '@/components/ui/skeleton';\nimport { Table, Tbody, Th, Row, Cell, DateTimeCell, UnitCell, TxtCell } from '@/ds/components/Table';\nimport { Thead } from '@/ds/components/Table';\nimport type { RefinedTrace } from '@/domains/traces/types';\nimport { Badge } from '@/ds/components/Badge';\nimport { TraceIcon } from '@/ds/icons/TraceIcon';\nimport { useOpenTrace } from './hooks/use-open-trace';\nimport { Txt } from '@/ds/components/Txt';\nimport { useContext } from 'react';\nimport { TraceContext } from './context/trace-context';\nimport { Check, X } from 'lucide-react';\nimport { toSigFigs } from '@/lib/number';\n\nconst TracesTableEmpty = ({ colsCount }: { colsCount: number }) => {\n return (\n <Tbody>\n <Row>\n <Cell colSpan={colsCount} className=\"text-center py-4\">\n <Txt>No traces found</Txt>\n </Cell>\n </Row>\n </Tbody>\n );\n};\n\nconst TracesTableError = ({ error, colsCount }: { error: { message: string }; colsCount: number }) => {\n return (\n <Tbody>\n <Row>\n <Cell colSpan={colsCount} className=\"text-center py-4\">\n <Txt>{error.message}</Txt>\n </Cell>\n </Row>\n </Tbody>\n );\n};\n\nexport interface TracesTableProps {\n traces: RefinedTrace[];\n error: { message: string } | null;\n}\n\nconst TraceRow = ({ trace, index, isActive }: { trace: RefinedTrace; index: number; isActive: boolean }) => {\n const { openTrace } = useOpenTrace();\n const hasFailure = trace.trace.some(span => span.status.code !== 0);\n\n return (\n <Row className={isActive ? 'bg-surface4' : ''} onClick={() => openTrace(trace.trace, index)}>\n <DateTimeCell dateTime={new Date(trace.started / 1000)} />\n <TxtCell title={trace.traceId}>{trace.traceId.substring(0, 7)}...</TxtCell>\n <UnitCell unit=\"ms\">{toSigFigs(trace.duration / 1000, 3)}</UnitCell>\n <Cell>\n <button onClick={() => openTrace(trace.trace, index)}>\n <Badge icon={<TraceIcon />}>{trace.trace.length}</Badge>\n </button>\n </Cell>\n <Cell>\n {hasFailure ? (\n <Badge variant=\"error\" icon={<X />}>\n Failed\n </Badge>\n ) : (\n <Badge icon={<Check />} variant=\"success\">\n Success\n </Badge>\n )}\n </Cell>\n </Row>\n );\n};\n\nexport const TracesTable = ({ traces, error }: TracesTableProps) => {\n const hasNoTraces = !traces || traces.length === 0;\n const { currentTraceIndex } = useContext(TraceContext);\n const colsCount = 4;\n\n return (\n <Table size=\"small\">\n <Thead>\n <Th width={120}>Time</Th>\n <Th width=\"auto\">Trace Id</Th>\n <Th width={120}>Duration</Th>\n <Th width={120}>Spans</Th>\n <Th width={120}>Status</Th>\n </Thead>\n {error ? (\n <TracesTableError error={error} colsCount={colsCount} />\n ) : hasNoTraces ? (\n <TracesTableEmpty colsCount={colsCount} />\n ) : (\n <>\n <Tbody>\n {traces.map((trace, index) => (\n <TraceRow key={trace.traceId} trace={trace} index={index} isActive={index === currentTraceIndex} />\n ))}\n </Tbody>\n </>\n )}\n </Table>\n );\n};\n","import { MouseEvent as ReactMouseEvent, useEffect, useRef, useState } from 'react';\n\nexport const useResizeColumn = ({\n defaultWidth,\n minimumWidth,\n maximumWidth,\n setCurrentWidth,\n}: {\n defaultWidth: number;\n minimumWidth: number;\n maximumWidth: number;\n setCurrentWidth?: (width: number) => void;\n}) => {\n const [isDragging, setIsDragging] = useState(false);\n const [sidebarWidth, setSidebarWidth] = useState<number>(defaultWidth);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const dragStartXRef = useRef(0);\n const initialWidthRef = useRef(0);\n\n const handleMouseDown = (e: ReactMouseEvent) => {\n e.preventDefault(); // Prevent text selection\n setIsDragging(true);\n dragStartXRef.current = e.clientX;\n initialWidthRef.current = sidebarWidth;\n };\n\n useEffect(() => {\n setSidebarWidth(defaultWidth);\n setCurrentWidth?.(defaultWidth);\n }, [defaultWidth]);\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging || !containerRef.current) return;\n\n const containerWidth = containerRef.current.offsetWidth;\n const deltaX = dragStartXRef.current - e.clientX;\n const deltaPercentage = (deltaX / containerWidth) * 100;\n\n // Calculate new width percentage\n const newWidth = Math.min(Math.max(initialWidthRef.current + deltaPercentage, minimumWidth), maximumWidth);\n setSidebarWidth(newWidth);\n setCurrentWidth?.(newWidth);\n };\n\n const handleMouseUp = () => {\n setIsDragging(false);\n };\n\n if (isDragging) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isDragging]);\n\n return { sidebarWidth, isDragging, handleMouseDown, containerRef };\n};\n","import { useResizeColumn } from '@/hooks/use-resize-column';\nimport { cn } from '@/lib/utils';\nimport { ReactNode } from 'react';\n\nexport const MastraResizablePanel = ({\n children,\n defaultWidth,\n minimumWidth,\n maximumWidth,\n className,\n disabled = false,\n setCurrentWidth,\n dividerPosition = 'left',\n}: {\n children: ReactNode;\n defaultWidth: number;\n minimumWidth: number;\n maximumWidth: number;\n className?: string;\n disabled?: boolean;\n setCurrentWidth?: (width: number) => void;\n dividerPosition?: 'left' | 'right';\n}) => {\n const { sidebarWidth, isDragging, handleMouseDown, containerRef } = useResizeColumn({\n defaultWidth: disabled ? 100 : defaultWidth,\n minimumWidth,\n maximumWidth,\n setCurrentWidth,\n });\n return (\n <div className={cn('w-full h-full relative', className)} ref={containerRef} style={{ width: `${sidebarWidth}%` }}>\n {!disabled && dividerPosition === 'left' ? (\n <div\n 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\n ${isDragging ? 'bg-border2 w-1.5 cursor- col-resize' : ''}`}\n onMouseDown={handleMouseDown}\n />\n ) : null}\n {children}\n {!disabled && dividerPosition === 'right' ? (\n <div\n 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\n ${isDragging ? 'bg-border2 w-1.5 cursor- col-resize' : ''}`}\n onMouseDown={handleMouseDown}\n />\n ) : null}\n </div>\n );\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n as?: React.ElementType;\n className?: string;\n href?: string;\n to?: string;\n prefetch?: boolean | null;\n children: React.ReactNode;\n size?: 'md' | 'lg';\n variant?: 'default' | 'light';\n}\n\nconst sizeClasses = {\n md: 'h-button-md gap-md',\n lg: 'h-button-lg gap-lg',\n};\n\nconst variantClasses = {\n default: 'bg-surface2 hover:bg-surface4 text-icon3 hover:text-icon6',\n light: 'bg-surface3 hover:bg-surface5 text-icon6',\n};\n\nexport const Button = ({ className, as, size = 'md', variant = 'default', ...props }: ButtonProps) => {\n const Component = as || 'button';\n\n return (\n <Component\n className={clsx(\n 'bg-surface2 border-sm border-border1 px-lg text-ui-md inline-flex items-center justify-center rounded-md border',\n variantClasses[variant],\n sizeClasses[size],\n className,\n {\n 'cursor-not-allowed': props.disabled,\n },\n )}\n {...props}\n />\n );\n};\n","import React from 'react';\n\nexport interface TraceTreeProps {\n children: React.ReactNode;\n}\n\nexport const TraceTree = ({ children }: TraceTreeProps) => {\n return <ol>{children}</ol>;\n};\n","import clsx from 'clsx';\n\nimport { Txt } from '../Txt';\nimport { toSigFigs } from '@/lib/number';\n\nexport interface TimeProps {\n durationMs: number;\n tokenCount?: number;\n variant?: 'agent';\n progressPercent: number;\n offsetPercent: number;\n}\n\nconst variantClasses = {\n agent: 'bg-accent1',\n};\n\nexport const Time = ({ durationMs, tokenCount, variant, progressPercent, offsetPercent }: TimeProps) => {\n const variantClass = variant ? variantClasses[variant] : 'bg-accent3';\n const percent = Math.min(100, progressPercent);\n\n return (\n <div className=\"w-[80px] xl:w-[166px] shrink-0\">\n <div className=\"bg-surface4 relative h-[6px] w-full rounded-full p-px overflow-hidden\">\n <div\n className={clsx('absolute h-1 rounded-full', variantClass)}\n style={{ width: `${percent}%`, left: `${offsetPercent}%` }}\n />\n </div>\n <div className=\"flex items-center gap-4 pt-0.5\">\n <Txt variant=\"ui-sm\" className=\"text-icon2 font-medium\">\n {toSigFigs(durationMs, 3)}ms\n </Txt>\n {tokenCount && (\n <Txt variant=\"ui-sm\" className=\"text-icon2 font-medium\">\n {tokenCount}t\n </Txt>\n )}\n </div>\n </div>\n );\n};\n","import clsx from 'clsx';\nimport { useState } from 'react';\nimport React from 'react';\n\nimport { AgentIcon } from '../../icons/AgentIcon';\nimport { ChevronIcon } from '../../icons/ChevronIcon';\nimport { DbIcon } from '../../icons/DbIcon';\nimport { Icon } from '../../icons/Icon';\nimport { MemoryIcon } from '../../icons/MemoryIcon';\nimport { ScoreIcon } from '../../icons/ScoreIcon';\nimport { ToolsIcon } from '../../icons/ToolsIcon';\nimport { TraceIcon } from '../../icons/TraceIcon';\nimport { WorkflowIcon } from '../../icons/WorkflowIcon';\nimport { Txt } from '../Txt';\n\nimport { Time } from './Time';\n\nexport interface SpanProps {\n children: React.ReactNode;\n durationMs: number;\n variant: 'tool' | 'agent' | 'workflow' | 'memory' | 'rag' | 'storage' | 'eval' | 'other';\n tokenCount?: number;\n spans?: React.ReactNode;\n isRoot?: boolean;\n onClick?: () => void;\n isActive?: boolean;\n offsetMs: number;\n totalDurationMs: number;\n}\n\nexport const spanIconMap = {\n tool: ToolsIcon,\n agent: AgentIcon,\n workflow: WorkflowIcon,\n memory: MemoryIcon,\n rag: TraceIcon,\n storage: DbIcon,\n eval: ScoreIcon,\n other: TraceIcon,\n};\n\nexport const spanVariantClasses = {\n tool: 'text-[#ECB047]',\n agent: 'text-accent1',\n workflow: 'text-accent3',\n memory: 'text-accent2',\n rag: 'text-accent2',\n storage: 'text-accent2',\n eval: 'text-accent4',\n other: 'text-icon6',\n};\n\nexport const Span = ({\n children,\n durationMs,\n variant,\n tokenCount,\n spans,\n isRoot,\n onClick,\n isActive,\n offsetMs,\n totalDurationMs,\n}: SpanProps) => {\n const [isExpanded, setIsExpanded] = useState(true);\n\n const VariantIcon = spanIconMap[variant];\n const variantClass = spanVariantClasses[variant];\n\n const progressPercent = (durationMs / totalDurationMs) * 100;\n const offsetPercent = (offsetMs / totalDurationMs) * 100;\n\n const TextEl = onClick ? 'button' : 'div';\n\n return (\n <li>\n <div className={clsx('flex justify-between items-center gap-2 rounded-md pl-2', isActive && 'bg-surface4')}>\n <div className=\"flex h-8 items-center gap-1 min-w-0\">\n {spans ? (\n <button\n type=\"button\"\n aria-label={isExpanded ? 'Collapse span' : 'Expand span'}\n aria-expanded={isExpanded}\n className=\"text-icon3 flex h-4 w-4\"\n onClick={() => setIsExpanded(!isExpanded)}\n >\n <Icon>\n <ChevronIcon className={clsx('transition-transform -rotate-90', { 'rotate-0': isExpanded })} />\n </Icon>\n </button>\n ) : (\n <div aria-hidden className=\"h-full w-4\">\n {!isRoot && <div className=\"ml-[7px] h-full w-px rounded-full\" />}\n </div>\n )}\n\n <TextEl className=\"flex items-center gap-2 min-w-0\" onClick={onClick}>\n <div className={clsx('bg-surface4 flex items-center justify-center rounded-md p-[3px]', variantClass)}>\n <Icon>\n <VariantIcon />\n </Icon>\n </div>\n <Txt variant=\"ui-md\" className=\"text-icon6 truncate\">\n {children}\n </Txt>\n </TextEl>\n </div>\n\n <Time\n durationMs={durationMs}\n tokenCount={tokenCount}\n variant={variant === 'agent' ? 'agent' : undefined}\n progressPercent={progressPercent}\n offsetPercent={offsetPercent}\n />\n </div>\n\n {isExpanded && spans && <div className=\"ml-4\">{spans}</div>}\n </li>\n );\n};\n","import React from 'react';\n\nexport interface SpansProps {\n children: React.ReactNode;\n}\n\nexport const Spans = ({ children }: SpansProps) => {\n return <ol>{children}</ol>;\n};\n","import React from 'react';\n\nimport { Span, SpanProps } from './Span';\nimport { Spans } from './Spans';\n\nexport interface TraceProps {\n name: string;\n spans: React.ReactNode;\n durationMs: number;\n tokenCount?: number;\n onClick?: () => void;\n variant: SpanProps['variant'];\n isActive?: boolean;\n totalDurationMs: number;\n}\n\nexport const Trace = ({\n name,\n spans,\n durationMs,\n tokenCount,\n onClick,\n variant,\n isActive,\n totalDurationMs,\n}: TraceProps) => {\n return (\n <Span\n isRoot\n durationMs={durationMs}\n variant={variant}\n spans={<Spans>{spans}</Spans>}\n onClick={onClick}\n isActive={isActive}\n offsetMs={0}\n totalDurationMs={totalDurationMs}\n >\n {name}\n </Span>\n );\n};\n","import { SpanProps } from '@/ds/components/TraceTree/Span';\nimport { Span } from '../types';\n\nexport const getSpanVariant = (span: Span): SpanProps['variant'] => {\n const attributes = Object.keys(span.attributes || {}).map(k => k.toLowerCase());\n const lowerCaseName = span.name.toLowerCase();\n\n const isAiSpan = lowerCaseName.startsWith('ai.');\n\n if (isAiSpan) {\n const isAiAboutTool = lowerCaseName.includes('tool');\n if (isAiAboutTool) return 'tool';\n\n return 'other';\n }\n\n const hasMemoryRelatedAttributes = attributes.some(key => key.includes('memory') || key.includes('storage'));\n if (hasMemoryRelatedAttributes) return 'memory';\n\n const hasToolRelatedAttributes = attributes.some(key => key.includes('tool'));\n if (hasToolRelatedAttributes) return 'tool';\n\n const hasAgentRelatedAttributes = attributes.some(key => key.includes('agent.'));\n if (hasAgentRelatedAttributes) return 'agent';\n\n if (lowerCaseName.includes('.insert')) {\n const evalRelatedAttribute = attributes.find(key => String(span.attributes?.[key])?.includes('mastra_evals'));\n if (evalRelatedAttribute) return 'eval';\n }\n\n return 'other';\n};\n","import type { Span, SpanNode } from '../types';\n\nfunction buildTree(\n spans: Span[],\n minStartTime: number,\n totalDurationMs: number,\n parentSpanId: string | null = null,\n): SpanNode[] {\n return spans\n .filter(span => span.parentSpanId === parentSpanId)\n .map(span => {\n return {\n ...span,\n children: buildTree(spans, minStartTime, totalDurationMs, span.id),\n offset: (span.startTime - minStartTime) / 1_000, // ns to ms\n duration: span.duration / 1000,\n totalDurationMs,\n };\n });\n}\n\nexport const createSpanTree = (spans: Span[]) => {\n if (spans.length === 0) return [];\n\n let minStartTime;\n let maxEndTime;\n let shortest;\n let longest;\n const orderedTree: Array<Span> = [];\n const listSize = spans.length;\n\n for (let i = listSize - 1; i >= 0; i--) {\n const span = spans[i];\n\n if (!minStartTime || span.startTime < minStartTime) {\n minStartTime = span.startTime;\n shortest = span;\n }\n\n if (!maxEndTime || span.endTime > maxEndTime) {\n maxEndTime = span.endTime;\n longest = span;\n }\n\n if (span.name !== '.insert' && span.name !== 'mastra.getStorage') {\n orderedTree.push(span);\n }\n }\n\n if (!minStartTime || !maxEndTime) return [];\n\n const totalDurationMs = (maxEndTime - minStartTime) / 1000;\n\n return buildTree(orderedTree, minStartTime, totalDurationMs);\n};\n","import { TraceTree } from '@/ds/components/TraceTree';\n\nimport type { Span, SpanNode } from './types';\nimport { Trace } from '@/ds/components/TraceTree/Trace';\nimport { Spans } from '@/ds/components/TraceTree/Spans';\nimport { Span as SpanComponent } from '@/ds/components/TraceTree/Span';\nimport { TraceContext } from './context/trace-context';\nimport { useContext } from 'react';\nimport { getSpanVariant } from './utils/getSpanVariant';\nimport { createSpanTree } from './utils/createSpanTree';\n\ninterface NestedSpansProps {\n spanNodes: SpanNode[];\n}\n\nconst NestedSpans = ({ spanNodes }: NestedSpansProps) => {\n const { span: activeSpan, setSpan } = useContext(TraceContext);\n\n return (\n <Spans>\n {spanNodes.map(spanNode => {\n const isActive = spanNode.id === activeSpan?.id;\n\n return (\n <SpanComponent\n key={spanNode.id}\n spans={spanNode.children.length > 0 && <NestedSpans spanNodes={spanNode.children} />}\n durationMs={spanNode.duration}\n offsetMs={spanNode.offset}\n variant={getSpanVariant(spanNode)}\n isActive={isActive}\n onClick={() => setSpan(spanNode)}\n totalDurationMs={spanNode.totalDurationMs}\n >\n {spanNode.name}\n </SpanComponent>\n );\n })}\n </Spans>\n );\n};\n\nexport interface SpanViewProps {\n trace: Span[];\n}\n\nexport default function SpanView({ trace }: SpanViewProps) {\n // SQL query sorts by startTime in descending order, so we need to reverse and copy the array for spans to show in correct order\n const { span: activeSpan, setSpan } = useContext(TraceContext);\n\n const tree = createSpanTree(trace);\n\n return (\n <TraceTree>\n {tree.map(node => (\n <Trace\n name={node.name}\n durationMs={node.duration}\n totalDurationMs={node.totalDurationMs}\n spans={<NestedSpans spanNodes={node.children} />}\n variant={getSpanVariant(node)}\n isActive={node.id === activeSpan?.id}\n onClick={() => setSpan(node)}\n />\n ))}\n </TraceTree>\n );\n}\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { Txt } from '../Txt';\n\nexport interface HeaderProps {\n children?: React.ReactNode;\n border?: boolean;\n}\n\nexport const Header = ({ children, border = true }: HeaderProps) => {\n return (\n <header\n className={clsx('h-header-default z-50 flex w-full items-center gap-[18px] bg-transparent px-5', {\n 'border-b-sm border-border1': border,\n })}\n >\n {children}\n </header>\n );\n};\n\nexport const HeaderTitle = ({ children }: HeaderProps) => {\n return (\n <Txt as=\"h1\" variant=\"ui-lg\" className=\"font-medium text-white\">\n {children}\n </Txt>\n );\n};\n\nexport const HeaderAction = ({ children }: HeaderProps) => {\n return <div className=\"ml-auto\">{children}</div>;\n};\n\nexport const HeaderGroup = ({ children }: HeaderProps) => {\n return <div className=\"gap-lg flex items-center\">{children}</div>;\n};\n","import { ChevronDown, ChevronUp, X } from 'lucide-react';\nimport { useContext } from 'react';\n\nimport { Button } from '@/ds/components/Button';\n\nimport { TraceContext } from './context/trace-context';\nimport SpanView from './trace-span-view';\nimport { Txt } from '@/ds/components/Txt';\n\nimport { Icon } from '@/ds/icons';\nimport { Header } from '@/ds/components/Header';\nimport { Badge } from '@/ds/components/Badge';\n\nexport function TraceDetails() {\n const { trace, currentTraceIndex, prevTrace, nextTrace, traces } = useContext(TraceContext);\n\n const actualTrace = traces[currentTraceIndex];\n\n if (!actualTrace || !trace) return null;\n\n const hasFailure = trace.some(span => span.status.code !== 0);\n\n return (\n <aside>\n <Header>\n <div className=\"flex items-center gap-1\">\n <Button className=\"bg-transparent border-none\" onClick={prevTrace} disabled={currentTraceIndex === 0}>\n <Icon>\n <ChevronUp />\n </Icon>\n </Button>\n <Button\n className=\"bg-transparent border-none\"\n onClick={nextTrace}\n disabled={currentTraceIndex === traces.length - 1}\n >\n <Icon>\n <ChevronDown />\n </Icon>\n </Button>\n </div>\n <div className=\"flex items-center gap-1 justify-between w-full\">\n <Txt variant=\"ui-lg\" className=\"font-medium text-icon5 shrink-0\">\n Trace <span className=\"ml-2 text-icon3\">{actualTrace.traceId.substring(0, 7)}</span>\n </Txt>\n\n {hasFailure && (\n <Badge variant=\"error\" icon={<X />}>\n Failed\n </Badge>\n )}\n </div>\n </Header>\n\n <div className=\"p-5\">\n <SpanView trace={trace} />\n </div>\n </aside>\n );\n}\n","import { Colors } from '@/ds/tokens';\nimport { jsonLanguage } from '@codemirror/lang-json';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { useMemo } from 'react';\n\nexport const useCodemirrorTheme = () => {\n return useMemo(\n () =>\n draculaInit({\n settings: {\n fontFamily: 'var(--geist-mono)',\n fontSize: '0.8rem',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: Colors.surface3,\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n }),\n [],\n );\n};\n\nexport const SyntaxHighlighter = ({ data }: { data: Record<string, unknown> }) => {\n const formattedCode = JSON.stringify(data, null, 2);\n const theme = useCodemirrorTheme();\n\n return (\n <div className=\"rounded-md bg-[#1a1a1a] p-1 font-mono\">\n <CodeMirror value={formattedCode} theme={theme} extensions={[jsonLanguage]} />\n </div>\n );\n};\n","import type { RefinedTrace, Span } from './types';\n\n/**\n *\n * @param duration duration of the span\n * @param fixedPoint how many fixed point\n * @returns duration in milliseconds in fixed points\n */\nexport function formatDuration(duration: number, fixedPoint = 2) {\n const durationInSecs = duration / 1_000;\n\n return durationInSecs.toFixed(fixedPoint);\n}\n\nexport function formatOtelTimestamp(otelTimestamp: number) {\n const date = new Date(otelTimestamp / 1000);\n\n return new Intl.DateTimeFormat('en-US', {\n month: 'numeric',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true,\n }).format(date);\n}\n\nexport function formatOtelTimestamp2(otelTimestamp: number) {\n const date = new Date(otelTimestamp / 1000000);\n\n return new Intl.DateTimeFormat('en-US', {\n month: 'numeric',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true,\n }).format(date);\n}\n\nexport function transformKey(key: string) {\n if (key.includes('.argument.')) {\n return `Input`;\n }\n if (key.includes('.result')) {\n return 'Output';\n }\n\n const newKey = key.split('.').join(' ').split('_').join(' ').replaceAll('ai', 'AI');\n\n return newKey.substring(0, 1).toUpperCase() + newKey.substring(1);\n}\n\nexport function cleanString(string: string) {\n return (\n string\n .replace(/\\\\n/g, '')\n // Also handle any actual newlines\n .replace(/\\n/g, '')\n // Clean up any resulting extra spaces\n .replace(/\\s+/g, ' ')\n .trim()\n );\n}\n\nexport const allowedAiSpanAttributes = [\n 'operation.name',\n 'ai.operationId',\n 'ai.model.provider',\n 'ai.model.id',\n 'ai.prompt.format',\n 'ai.prompt.messages',\n 'ai.prompt.tools',\n 'ai.prompt.toolChoice',\n 'ai.settings.toolChoice',\n 'ai.schema',\n 'ai.settings.output',\n 'ai.response.object',\n 'ai.response.text',\n 'ai.response.timestamp',\n 'componentName',\n 'ai.usage.promptTokens',\n 'ai.usage.completionTokens',\n];\n","import { useContext } from 'react';\n\nimport { SyntaxHighlighter } from '@/components/syntax-highlighter';\n\nimport { TraceContext } from './context/trace-context';\n\nimport { formatOtelTimestamp, formatOtelTimestamp2, transformKey } from './utils';\nimport { Header } from '@/ds/components/Header';\nimport { ChevronDown, ChevronUp, X } from 'lucide-react';\nimport { Icon, LatencyIcon } from '@/ds/icons';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\nimport { Badge } from '@/ds/components/Badge';\nimport { getSpanVariant } from './utils/getSpanVariant';\nimport { spanIconMap, spanVariantClasses } from '@/ds/components/TraceTree/Span';\nimport type { Span } from './types';\nimport React from 'react';\nimport { toSigFigs } from '@/lib/number';\n\nexport function SpanDetail() {\n const { span, setSpan, trace, setIsOpen } = useContext(TraceContext);\n if (!span || !trace) return null;\n\n // Span order is reversed\n const prevSpan = () => {\n const currentIndex = trace.findIndex(t => t.id === span.id);\n if (currentIndex !== -1 && currentIndex < trace.length - 1) {\n setSpan(trace[currentIndex + 1]);\n }\n };\n\n // Span order is reversed\n const nextSpan = () => {\n const currentIndex = trace.findIndex(t => t.id === span.id);\n if (currentIndex !== -1 && currentIndex > 0) {\n setSpan(trace[currentIndex - 1]);\n }\n };\n\n const SpanIcon = spanIconMap[getSpanVariant(span)];\n const variantClass = spanVariantClasses[getSpanVariant(span)];\n\n return (\n <aside>\n <Header>\n <div className=\"flex items-center gap-1\">\n <Button className=\"bg-transparent border-none\" onClick={prevSpan}>\n <Icon>\n <ChevronUp />\n </Icon>\n </Button>\n <Button className=\"bg-transparent border-none\" onClick={nextSpan}>\n <Icon>\n <ChevronDown />\n </Icon>\n </Button>\n </div>\n <div>\n <Txt variant=\"ui-lg\" className=\"font-medium text-icon5\" as=\"h2\">\n Span <span className=\"ml-2 text-icon3\">{span.id.substring(0, 7)}</span>\n </Txt>\n </div>\n <div className=\"ml-auto flex items-center gap-2\">\n <Button className=\"bg-transparent border-none\" onClick={() => setIsOpen(false)}>\n <Icon>\n <X />\n </Icon>\n </Button>\n </div>\n </Header>\n\n <div className=\"p-5\">\n <Txt variant=\"header-md\" as=\"h3\" className=\"text-icon-6 flex items-center gap-4 pb-3\">\n <Icon size=\"lg\" className=\"bg-surface4 p-1 rounded-md\">\n <SpanIcon className={variantClass} />\n </Icon>\n\n {span.name}\n </Txt>\n\n <div className=\"flex flex-row gap-2 items-center\">\n {span.status.code === 0 ? (\n <Badge icon={<LatencyIcon />} variant=\"success\">\n {toSigFigs(span.duration, 3)}ms\n </Badge>\n ) : (\n <Badge variant=\"error\" icon={<X />}>\n Failed in {toSigFigs(span.duration, 3)}ms\n </Badge>\n )}\n </div>\n\n <hr className=\"border-border1 border-sm my-5\" />\n <dl className=\"grid grid-cols-2 justify-between gap-2\">\n <dt className=\"font-medium text-ui-md text-icon3\">ID</dt>\n <dd className=\"text-ui-md text-icon6\">{span.id}</dd>\n\n <dt className=\"font-medium text-ui-md text-icon3\">Created at</dt>\n <dd className=\"text-ui-md text-icon6\">{span.startTime ? formatOtelTimestamp(span.startTime) : ''}</dd>\n </dl>\n\n {span.attributes && <Attributes attributes={span.attributes} />}\n {span.events?.length > 0 && <Events span={span} />}\n </div>\n </aside>\n );\n}\n\ninterface AttributesProps {\n attributes: Record<string, string | number | boolean | null>;\n}\n\nfunction Attributes({ attributes }: AttributesProps) {\n if (!attributes) return null;\n\n const entries = Object.entries(attributes);\n if (entries.length === 0) return null;\n\n const keysToHide = ['http.request_id', 'componentName'];\n\n return (\n <div>\n {entries\n .filter(([key]) => !keysToHide.includes(key))\n .map(([key, val]) => {\n return (\n <div key={key}>\n <hr className=\"border-border1 border-sm my-5\" />\n\n <Txt as=\"h4\" variant=\"ui-md\" className=\"text-icon3 pb-2\">\n {transformKey(key)}\n </Txt>\n\n <AttributeValue value={val} />\n </div>\n );\n })}\n </div>\n );\n}\n\ninterface AttributeValueProps {\n value: string | number | boolean | null | Record<string, string | number | boolean | null>;\n}\n\nconst AttributeValue = ({ value }: AttributeValueProps) => {\n if (!value)\n return (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-icon6\">\n N/A\n </Txt>\n );\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-icon6\">\n {String(value)}\n </Txt>\n );\n }\n\n if (typeof value === 'object') {\n return <SyntaxHighlighter data={value} />;\n }\n\n try {\n return <SyntaxHighlighter data={JSON.parse(value)} />;\n } catch {\n return (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-icon6\">\n {String(value)}\n </Txt>\n );\n }\n};\n\ninterface EventsProps {\n span: Span;\n}\n\nfunction Events({ span }: EventsProps) {\n if (!span.events) return null;\n\n return (\n <div>\n <hr className=\"border-border1 border-sm my-5\" />\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-icon6 pb-2\">\n Events\n </Txt>\n\n {span.events.map(event => {\n const isLast = event === span.events[span.events.length - 1];\n\n return (\n <React.Fragment key={event.name}>\n <div key={event.name}>\n <dl className=\"grid grid-cols-2 justify-between gap-2 pb-2\">\n <dt className=\"font-medium text-ui-md text-icon3\">Name</dt>\n <dd className=\"text-ui-md text-icon6\">{event.name}</dd>\n\n <dt className=\"font-medium text-ui-md text-icon3\">Time</dt>\n <dd className=\"text-ui-md text-icon6\">\n {event.timeUnixNano ? formatOtelTimestamp2(Number(event.timeUnixNano)) : 'N/A'}\n </dd>\n </dl>\n\n {event.attributes?.length > 0 ? (\n <ul className=\"space-y-2\">\n {event.attributes\n .filter(attribute => attribute !== null)\n .map(attribute => (\n <li key={attribute.key}>\n <Txt as=\"h4\" variant=\"ui-md\" className=\"text-icon3 pb-2\">\n {transformKey(attribute.key)}\n </Txt>\n <AttributeValue value={attribute.value} />\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n\n {!isLast && <hr className=\"border-border1 border-sm my-5\" />}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n","import { MastraResizablePanel } from '@/domains/resizable-panel';\nimport { TraceDetails } from '@/domains/traces/trace-details';\nimport { SpanDetail } from '@/domains/traces/trace-span-details';\n\nexport interface TracesSidebarProps {\n className?: string;\n onResize?: (width: number) => void;\n width: number;\n}\n\nexport const TracesSidebar = ({ onResize }: TracesSidebarProps) => {\n return (\n <MastraResizablePanel\n className=\"h-full absolute right-0 inset-y-0 bg-surface2\"\n defaultWidth={80}\n minimumWidth={50}\n maximumWidth={80}\n setCurrentWidth={onResize}\n >\n <div className=\"h-full grid grid-cols-2\">\n <div className=\"overflow-x-scroll w-full h-[calc(100%-40px)]\">\n <TraceDetails />\n </div>\n\n <div className=\"h-[calc(100%-40px)] overflow-x-scroll w-full border-l border-border1\">\n <SpanDetail />\n </div>\n </div>\n </MastraResizablePanel>\n );\n};\n","import { useContext, useState } from 'react';\n\nimport { TraceContext, TraceProvider } from '@/domains/traces/context/trace-context';\n\nimport { TracesTable } from '../../traces/traces-table';\nimport { TracesSidebar } from '@/domains/traces/traces-sidebar';\nimport clsx from 'clsx';\nimport { RefinedTrace } from '@/domains/traces/types';\n\nexport interface AgentTracesProps {\n className?: string;\n traces: RefinedTrace[];\n error: { message: string } | null;\n}\n\nexport function AgentTraces({ className, traces, error }: AgentTracesProps) {\n return (\n <TraceProvider initialTraces={traces || []}>\n <AgentTracesInner className={className} traces={traces} error={error} />\n </TraceProvider>\n );\n}\n\nfunction AgentTracesInner({ className, traces, error }: AgentTracesProps) {\n const [sidebarWidth, setSidebarWidth] = useState(100);\n const { isOpen: open } = useContext(TraceContext);\n\n return (\n <div className={clsx('h-full relative overflow-hidden flex', className)}>\n <div className=\"h-full overflow-y-scroll w-full\">\n <TracesTable traces={traces} error={error} />\n </div>\n\n {open && <TracesSidebar width={sidebarWidth} onResize={setSidebarWidth} />}\n </div>\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { cn } from '@/lib/utils';\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn('relative flex w-full touch-none select-none items-center', className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary/50\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border border-primary/50 bg-white shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","'use client';\n\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst labelVariants = cva('text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70');\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","'use client';\n\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { Circle } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return <RadioGroupPrimitive.Root className={cn('grid gap-2', className)} {...props} ref={ref} />;\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n 'aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n","import { Txt } from '@/ds/components/Txt/Txt';\nimport { ReactNode } from 'react';\n\nexport interface EntryProps {\n label: ReactNode;\n children: ReactNode;\n}\n\nexport const Entry = ({ label, children }: EntryProps) => {\n return (\n <div className=\"space-y-2\">\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-icon3\">\n {label}\n </Txt>\n\n {children}\n </div>\n );\n};\n","import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import { Icon } from '@/ds/icons/Icon';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { useAgentSettings } from '@/domains/agents/context/agent-context';\nimport { useState } from 'react';\nimport { Input } from '@/components/ui/input';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport { ChevronDown } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nexport const AgentAdvancedSettings = () => {\n const { modelSettings, setModelSettings } = useAgentSettings();\n const [isOpen, setIsOpen] = useState(false);\n\n const collapsibleClassName = 'rounded-lg border-sm border-border1 bg-surface3 overflow-clip';\n const collapsibleTriggerClassName =\n 'text-icon3 text-ui-lg font-medium flex items-center gap-2 w-full p-[10px] justify-between';\n const collapsibleContentClassName = 'bg-surface2 p-[10px] grid grid-cols-2 gap-[10px]';\n\n return (\n <Collapsible className={collapsibleClassName} open={isOpen} onOpenChange={setIsOpen}>\n <CollapsibleTrigger className={collapsibleTriggerClassName}>\n Advanced Settings\n <Icon className={cn('transition-transform', isOpen ? 'rotate-0' : '-rotate-90')}>\n <ChevronDown />\n </Icon>\n </CollapsibleTrigger>\n <CollapsibleContent className={collapsibleContentClassName}>\n <div className=\"space-y-1\">\n <Txt as=\"label\" className=\"text-icon3\" variant=\"ui-sm\" htmlFor=\"top-k\">\n Top K\n </Txt>\n <Input\n id=\"top-k\"\n type=\"number\"\n value={modelSettings?.topK || ''}\n onChange={e =>\n setModelSettings({ ...modelSettings, topK: e.target.value ? Number(e.target.value) : undefined })\n }\n />\n </div>\n\n <div className=\"space-y-1\">\n <Txt as=\"label\" className=\"text-icon3\" variant=\"ui-sm\" htmlFor=\"frequency-penalty\">\n Frequency Penalty\n </Txt>\n <Input\n id=\"frequency-penalty\"\n type=\"number\"\n value={modelSettings?.frequencyPenalty || ''}\n onChange={e =>\n setModelSettings({\n ...modelSettings,\n frequencyPenalty: e.target.value ? Number(e.target.value) : undefined,\n })\n }\n />\n </div>\n\n <div className=\"space-y-1\">\n <Txt as=\"label\" className=\"text-icon3\" variant=\"ui-sm\" htmlFor=\"presence-penalty\">\n Presence Penalty\n </Txt>\n <Input\n id=\"presence-penalty\"\n type=\"number\"\n value={modelSettings?.presencePenalty || ''}\n onChange={e =>\n setModelSettings({\n ...modelSettings,\n presencePenalty: e.target.value ? Number(e.target.value) : undefined,\n })\n }\n />\n </div>\n\n <div className=\"space-y-1\">\n <Txt as=\"label\" className=\"text-icon3\" variant=\"ui-sm\" htmlFor=\"max-tokens\">\n Max Tokens\n </Txt>\n <Input\n id=\"max-tokens\"\n type=\"number\"\n value={modelSettings?.maxTokens || ''}\n onChange={e =>\n setModelSettings({\n ...modelSettings,\n maxTokens: e.target.value ? Number(e.target.value) : undefined,\n })\n }\n />\n </div>\n\n <div className=\"space-y-1\">\n <Txt as=\"label\" className=\"text-icon3\" variant=\"ui-sm\" htmlFor=\"max-steps\">\n Max Steps\n </Txt>\n <Input\n id=\"max-steps\"\n type=\"number\"\n value={modelSettings?.maxSteps || ''}\n onChange={e =>\n setModelSettings({\n ...modelSettings,\n maxSteps: e.target.value ? Number(e.target.value) : undefined,\n })\n }\n />\n </div>\n\n <div className=\"space-y-1\">\n <Txt as=\"label\" className=\"text-icon3\" variant=\"ui-sm\" htmlFor=\"max-retries\">\n Max Retries\n </Txt>\n <Input\n id=\"max-retries\"\n type=\"number\"\n value={modelSettings?.maxRetries || ''}\n onChange={e =>\n setModelSettings({\n ...modelSettings,\n maxRetries: e.target.value ? Number(e.target.value) : undefined,\n })\n }\n />\n </div>\n </CollapsibleContent>\n </Collapsible>\n );\n};\n","import { Slider } from '@/components/ui/slider';\n\nimport { Label } from '@/components/ui/label';\n\nimport { RefreshCw } from 'lucide-react';\n\nimport { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';\n\nimport { Entry } from '@/components/ui/entry';\nimport { useAgentSettings } from '../context/agent-context';\nimport { Button } from '@/ds/components/Button/Button';\nimport { Icon } from '@/ds/icons/Icon';\nimport { Txt } from '@/ds/components/Txt/Txt';\n\nimport { AgentAdvancedSettings } from './agent-advanced-settings';\n\nexport function AgentModelSettings() {\n const { modelSettings, setModelSettings, chatWithGenerate, setChatWithGenerate, resetModelSettings } =\n useAgentSettings();\n\n return (\n <div className=\"px-5 text-xs py-2 pb-4\">\n <section className=\"space-y-7\">\n <Entry label=\"Chat Method\">\n <RadioGroup\n orientation=\"horizontal\"\n value={chatWithGenerate ? 'generate' : 'stream'}\n onValueChange={(value: string) => setChatWithGenerate(value === 'generate')}\n className=\"flex flex-row gap-4\"\n >\n <div className=\"flex items-center gap-2\">\n <RadioGroupItem value=\"generate\" id=\"generate\" className=\"text-icon6\" />\n <Label className=\"text-icon6 text-ui-md\" htmlFor=\"generate\">\n Generate\n </Label>\n </div>\n <div className=\"flex items-center gap-2\">\n <RadioGroupItem value=\"stream\" id=\"stream\" className=\"text-icon6\" />\n <Label className=\"text-icon6 text-ui-md\" htmlFor=\"stream\">\n Stream\n </Label>\n </div>\n </RadioGroup>\n </Entry>\n\n <div className=\"grid grid-cols-2 gap-8\">\n <Entry label=\"Temperature\">\n <div className=\"flex flex-row justify-between items-center gap-2\">\n <Slider\n value={[modelSettings?.temperature ?? -0.1]}\n max={1}\n min={-0.1}\n step={0.1}\n onValueChange={value =>\n setModelSettings({ ...modelSettings, temperature: value[0] < 0 ? undefined : value[0] })\n }\n />\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-icon3\">\n {modelSettings?.temperature ?? 'n/a'}\n </Txt>\n </div>\n </Entry>\n\n <Entry label=\"Top P\">\n <div className=\"flex flex-row justify-between items-center gap-2\">\n <Slider\n onValueChange={value =>\n setModelSettings({ ...modelSettings, topP: value[0] < 0 ? undefined : value[0] })\n }\n value={[modelSettings?.topP ?? -0.1]}\n max={1}\n min={-0.1}\n step={0.1}\n />\n\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-icon3\">\n {modelSettings?.topP ?? 'n/a'}\n </Txt>\n </div>\n </Entry>\n </div>\n </section>\n\n <section className=\"py-7\">\n <AgentAdvancedSettings />\n </section>\n\n <Button onClick={() => resetModelSettings()} variant=\"light\" className=\"w-full\" size=\"lg\">\n <Icon>\n <RefreshCw />\n </Icon>\n Reset\n </Button>\n </div>\n );\n}\n","'use client';\n\nimport {\n useExternalStoreRuntime,\n ThreadMessageLike,\n AppendMessage,\n AssistantRuntimeProvider,\n} from '@assistant-ui/react';\nimport { processDataStream } from '@ai-sdk/ui-utils';\nimport { useState, ReactNode, useEffect } from 'react';\n\nimport { ChatProps } from '@/types';\nimport { useMastraClient } from '@/contexts/mastra-client-context';\nconst convertMessage = (message: ThreadMessageLike): ThreadMessageLike => {\n return message;\n};\n\nexport function MastraNetworkRuntimeProvider({\n children,\n agentId,\n initialMessages,\n memory,\n threadId,\n refreshThreadList,\n modelSettings = {},\n}: Readonly<{\n children: ReactNode;\n}> &\n ChatProps) {\n const [isRunning, setIsRunning] = useState(false);\n const [messages, setMessages] = useState<ThreadMessageLike[]>(initialMessages || []);\n const [currentThreadId, setCurrentThreadId] = useState<string | undefined>(threadId);\n\n const { frequencyPenalty, presencePenalty, maxRetries, maxSteps, maxTokens, temperature, topK, topP, instructions } =\n modelSettings;\n\n useEffect(() => {\n if (messages.length === 0 || currentThreadId !== threadId) {\n if (initialMessages && threadId && memory) {\n setMessages(initialMessages);\n setCurrentThreadId(threadId);\n }\n }\n }, [initialMessages, threadId, memory, messages]);\n\n const mastra = useMastraClient();\n\n const network = mastra.getNetwork(agentId);\n\n const onNew = async (message: AppendMessage) => {\n if (message.content[0]?.type !== 'text') throw new Error('Only text messages are supported');\n\n const input = message.content[0].text;\n setMessages(currentConversation => [...currentConversation, { role: 'user', content: input }]);\n setIsRunning(true);\n\n try {\n const response = await network.stream({\n messages: [\n {\n role: 'user',\n content: input,\n },\n ],\n runId: agentId,\n frequencyPenalty,\n presencePenalty,\n maxRetries,\n maxSteps,\n maxTokens,\n temperature,\n topK,\n topP,\n instructions,\n ...(memory ? { threadId, resourceId: agentId } : {}),\n });\n\n if (!response.body) {\n throw new Error('No response body');\n }\n\n const parts = [];\n let content = '';\n let currentTextPart: { type: 'text'; text: string } | null = null;\n\n let assistantMessageAdded = false;\n\n function updater() {\n setMessages(currentConversation => {\n const message: ThreadMessageLike = {\n role: 'assistant',\n content: [{ type: 'text', text: content }],\n };\n\n if (!assistantMessageAdded) {\n assistantMessageAdded = true;\n return [...currentConversation, message];\n }\n return [...currentConversation.slice(0, -1), message];\n });\n }\n\n await processDataStream({\n stream: response.body,\n onTextPart(value) {\n if (currentTextPart == null) {\n currentTextPart = {\n type: 'text',\n text: value,\n };\n parts.push(currentTextPart);\n } else {\n currentTextPart.text += value;\n }\n content += value;\n updater();\n },\n async onToolCallPart(value) {\n console.log('Tool call received:', value);\n\n // Update the messages state\n setMessages(currentConversation => {\n // Get the last message (should be the assistant's message)\n const lastMessage = currentConversation[currentConversation.length - 1];\n\n // Only process if the last message is from the assistant\n if (lastMessage && lastMessage.role === 'assistant') {\n // Create a new message with the tool call part\n const updatedMessage: ThreadMessageLike = {\n ...lastMessage,\n content: Array.isArray(lastMessage.content)\n ? [\n ...lastMessage.content,\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ]\n : [\n ...(typeof lastMessage.content === 'string' ? [{ type: 'text', text: lastMessage.content }] : []),\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ],\n };\n\n // Replace the last message with the updated one\n return [...currentConversation.slice(0, -1), updatedMessage];\n }\n\n // If there's no assistant message yet, create one\n const newMessage: ThreadMessageLike = {\n role: 'assistant',\n content: [\n { type: 'text', text: content },\n {\n type: 'tool-call',\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.args,\n },\n ],\n };\n return [...currentConversation, newMessage];\n });\n },\n async onToolResultPart(value: any) {\n console.log('Tool call result received:', value);\n\n // Update the messages state\n setMessages(currentConversation => {\n // Get the last message (should be the assistant's message)\n const lastMessage = currentConversation[currentConversation.length - 1];\n\n // Only process if the last message is from the assistant and has content array\n if (lastMessage && lastMessage.role === 'assistant' && Array.isArray(lastMessage.content)) {\n // Find the tool call content part that this result belongs to\n const updatedContent = lastMessage.content.map(part => {\n if (typeof part === 'object' && part.type === 'tool-call' && part.toolCallId === value.toolCallId) {\n return {\n ...part,\n result: value.result,\n };\n }\n return part;\n });\n\n // Create a new message with the updated content\n const updatedMessage: ThreadMessageLike = {\n ...lastMessage,\n content: updatedContent,\n };\n\n // Replace the last message with the updated one\n return [...currentConversation.slice(0, -1), updatedMessage];\n }\n\n return currentConversation;\n });\n },\n onErrorPart(error) {\n throw new Error(error);\n },\n });\n\n console.log(messages);\n\n setIsRunning(false);\n } catch (error) {\n console.error('Error occurred in MastraRuntimeProvider', error);\n setIsRunning(false);\n }\n };\n\n const runtime = useExternalStoreRuntime<ThreadMessageLike>({\n isRunning,\n messages,\n convertMessage,\n onNew,\n });\n\n return <AssistantRuntimeProvider runtime={runtime}> {children} </AssistantRuntimeProvider>;\n}\n","import React, { Suspense, useState, useEffect } from 'react';\nimport Markdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport type { Components } from 'react-markdown';\n\nimport { CopyButton } from '../../components/ui/copy-button';\nimport { cn } from '../../lib/utils';\n\nimport { highlight } from './syntax-highlighter';\n\ninterface MarkdownRendererProps {\n children: string;\n}\n\nexport function MarkdownRenderer({ children }: MarkdownRendererProps) {\n const processedText = children.replace(/\\\\n/g, '\\n');\n\n return (\n <Markdown remarkPlugins={[remarkGfm]} components={COMPONENTS} className=\"space-y-3\">\n {processedText}\n </Markdown>\n );\n}\n\ninterface HighlightedPre extends React.HTMLAttributes<HTMLPreElement> {\n children: string;\n language: string;\n}\n\nconst HighlightedPre = React.memo(({ children, language, ...props }: HighlightedPre) => {\n const [tokens, setTokens] = useState<any[]>([]);\n\n useEffect(() => {\n highlight(children, language).then(tokens => {\n if (tokens) setTokens(tokens);\n });\n }, [children, language]);\n\n if (!tokens.length) {\n return <pre {...props}>{children}</pre>;\n }\n\n return (\n <pre {...props}>\n <code>\n {tokens.map((line, lineIndex) => (\n <>\n <span key={lineIndex}>\n {line.map((token: any, tokenIndex: number) => {\n const style = typeof token.htmlStyle === 'string' ? undefined : token.htmlStyle;\n\n return (\n <span\n key={tokenIndex}\n className=\"text-shiki-light bg-shiki-light-bg dark:text-shiki-dark dark:bg-shiki-dark-bg\"\n style={style}\n >\n {token.content}\n </span>\n );\n })}\n </span>\n {lineIndex !== tokens.length - 1 && '\\n'}\n </>\n ))}\n </code>\n </pre>\n );\n});\nHighlightedPre.displayName = 'HighlightedCode';\n\ninterface CodeBlockProps extends React.HTMLAttributes<HTMLPreElement> {\n children: React.ReactNode;\n className?: string;\n language: string;\n}\n\nconst CodeBlock = ({ children, className, language, ...restProps }: CodeBlockProps) => {\n const code = typeof children === 'string' ? children : childrenTakeAllStringContents(children);\n\n const preClass = cn(\n 'overflow-x-scroll rounded-md border bg-background/50 p-4 font-mono text-sm [scrollbar-width:none]',\n className,\n );\n\n return (\n <div className=\"group/code relative mb-4\">\n <Suspense\n fallback={\n <pre className={preClass} {...restProps}>\n {children}\n </pre>\n }\n >\n <HighlightedPre language={language} className={preClass}>\n {code}\n </HighlightedPre>\n </Suspense>\n\n <div className=\"invisible absolute right-2 top-2 flex space-x-1 rounded-lg p-1 opacity-0 transition-all duration-200 group-hover/code:visible group-hover/code:opacity-100\">\n <CopyButton content={code} copyMessage=\"Copied code to clipboard\" />\n </div>\n </div>\n );\n};\n\nfunction childrenTakeAllStringContents(element: any): string {\n if (typeof element === 'string') {\n return element;\n }\n\n if (element?.props?.children) {\n let children = element.props.children;\n\n if (Array.isArray(children)) {\n return children.map(child => childrenTakeAllStringContents(child)).join('');\n } else {\n return childrenTakeAllStringContents(children);\n }\n }\n\n return '';\n}\n\n// Create component wrappers with className\nconst COMPONENTS: Components = {\n h1: ({ children, ...props }) => (\n <h1 className=\"text-2xl font-semibold\" {...props}>\n {children}\n </h1>\n ),\n h2: ({ children, ...props }) => (\n <h2 className=\"font-semibold text-xl\" {...props}>\n {children}\n </h2>\n ),\n h3: ({ children, ...props }) => (\n <h3 className=\"font-semibold text-lg\" {...props}>\n {children}\n </h3>\n ),\n h4: ({ children, ...props }) => (\n <h4 className=\"font-semibold text-base\" {...props}>\n {children}\n </h4>\n ),\n h5: ({ children, ...props }) => (\n <h5 className=\"font-medium\" {...props}>\n {children}\n </h5>\n ),\n strong: ({ children, ...props }) => (\n <strong className=\"font-semibold\" {...props}>\n {children}\n </strong>\n ),\n a: ({ children, ...props }) => (\n <a className=\"underline underline-offset-2\" {...props}>\n {children}\n </a>\n ),\n blockquote: ({ children, ...props }) => (\n <blockquote className=\"border-l-2 border-primary pl-4\" {...props}>\n {children}\n </blockquote>\n ),\n code: ({ children, className, ...rest }: any) => {\n const match = /language-(\\w+)/.exec(className || '');\n return match ? (\n <CodeBlock className={className} language={match[1]} {...rest}>\n {children}\n </CodeBlock>\n ) : (\n <code\n className={cn(\n 'font-mono [:not(pre)>&]:rounded-md [:not(pre)>&]:bg-background/50 [:not(pre)>&]:px-1 [:not(pre)>&]:py-0.5',\n )}\n {...rest}\n >\n {children}\n </code>\n );\n },\n pre: ({ children }: any) => children,\n ol: ({ children, ...props }) => (\n <ol className=\"list-decimal space-y-2 pl-6\" {...props}>\n {children}\n </ol>\n ),\n ul: ({ children, ...props }) => (\n <ul className=\"list-disc space-y-2 pl-6\" {...props}>\n {children}\n </ul>\n ),\n li: ({ children, ...props }) => (\n <li className=\"my-1.5\" {...props}>\n {children}\n </li>\n ),\n table: ({ children, ...props }) => (\n <table className=\"w-full border-collapse overflow-y-auto rounded-md border border-foreground/20\" {...props}>\n {children}\n </table>\n ),\n th: ({ children, ...props }) => (\n <th\n className=\"border border-foreground/20 px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right\"\n {...props}\n >\n {children}\n </th>\n ),\n td: ({ children, ...props }) => (\n <td\n className=\"border border-foreground/20 px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right\"\n {...props}\n >\n {children}\n </td>\n ),\n tr: ({ children, ...props }) => (\n <tr className=\"m-0 border-t p-0 even:bg-muted\" {...props}>\n {children}\n </tr>\n ),\n p: ({ children, ...props }) => (\n <p className=\"whitespace-pre-wrap leading-relaxed\" {...props}>\n {children}\n </p>\n ),\n hr: ({ ...props }) => <hr className=\"border-foreground/20\" {...props} />,\n};\n\nexport default MarkdownRenderer;\n","import { MarkdownRenderer } from '../../components/ui/markdown-renderer';\nimport { ToolCallContentPartComponent } from '@assistant-ui/react';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon, LoaderCircle, ExternalLinkIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { cn } from '@/lib/utils';\n\n// Define custom color classes with improved contrast\nconst purpleClasses = {\n bg: 'bg-[rgba(124,80,175,0.25)]',\n text: 'text-[rgb(180,140,230)]',\n hover: 'hover:text-[rgb(200,160,250)]',\n border: 'border-[rgba(124,80,175,0.5)]',\n};\n\n// Use a more generic type for the component to avoid TypeScript errors\nexport const ToolFallback: ToolCallContentPartComponent = props => {\n const { toolCallId, toolName, args, argsText, result, status } = props;\n const [expandedAgents, setExpandedAgents] = useState<Record<string, boolean>>({});\n\n // Handle case where args or args.actions is undefined\n const actions = args?.actions || [];\n\n // Skip rendering if no actions\n if (actions.length === 0) {\n return null;\n }\n\n const toggleAgent = (agentId: string) => {\n setExpandedAgents(prev => ({\n ...prev,\n [agentId]: !prev[agentId],\n }));\n };\n\n // Extract URLs from result for optional linking\n const extractUrls = (text: unknown): string[] => {\n if (typeof text !== 'string') return [];\n const urlRegex = /(https?:\\/\\/[^\\s]+)/g;\n return text.match(urlRegex) || [];\n };\n\n return (\n <div className=\"mb-4 w-full rounded-lg border border-gray-700 overflow-hidden shadow-md\">\n {actions.map((action: any, index: number) => {\n const agentId = `${toolCallId || 'tool'}-${action.agent}-${index}`;\n const isExpanded = expandedAgents[agentId] || false;\n const urls = result ? extractUrls(result) : [];\n\n return (\n <div key={agentId} className={`border-b border-gray-700 ${index === actions.length - 1 ? 'border-b-0' : ''}`}>\n <div\n className=\"flex items-center justify-between px-4 py-3 bg-gray-900 hover:bg-gray-800 cursor-pointer\"\n onClick={() => toggleAgent(agentId)}\n >\n <div className=\"flex items-center gap-3\">\n <div className={cn('flex h-6 w-6 items-center justify-center rounded-full', purpleClasses.bg)}>\n {status?.type === 'running' ? (\n <LoaderCircle className={cn('h-4 w-4 animate-spin', purpleClasses.text)} />\n ) : (\n <CheckIcon className={cn('h-4 w-4', purpleClasses.text)} />\n )}\n </div>\n <div>\n <p className=\"font-medium text-sm text-gray-100\">{action.agent?.replaceAll('_', ' ')}</p>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <span className={cn('text-xs px-2 py-1 rounded-full', purpleClasses.bg, purpleClasses.text)}>\n {status?.type === 'running' ? 'Processing...' : 'Complete'}\n </span>\n {isExpanded ? (\n <ChevronUpIcon className=\"h-4 w-4 text-gray-300\" />\n ) : (\n <ChevronDownIcon className=\"h-4 w-4 text-gray-300\" />\n )}\n </div>\n </div>\n\n {isExpanded && (\n <div className=\"px-4 py-3 bg-[#111]\">\n <div className=\"mb-3\">\n <p className=\"text-xs font-semibold text-gray-300 mb-1\">Query:</p>\n <div className=\"p-2 bg-gray-900 rounded border border-gray-700\">\n <p className=\"text-sm text-gray-200 whitespace-pre-wrap\">{action.input}</p>\n </div>\n </div>\n\n {result && (\n <div>\n <p className=\"text-xs font-semibold text-gray-300 mb-1\">Result:</p>\n <div className=\"p-2 bg-gray-900 rounded border border-gray-700 max-h-60 overflow-auto\">\n {typeof result === 'string' ? (\n <div className=\"text-sm text-gray-200\">\n <MarkdownRenderer>{result}</MarkdownRenderer>\n </div>\n ) : (\n <p className=\"text-sm text-gray-200 whitespace-pre-wrap\">{JSON.stringify(result, null, 2)}</p>\n )}\n </div>\n\n {urls.length > 0 && (\n <div className=\"mt-2\">\n <p className=\"text-xs font-semibold text-gray-300 mb-1\">Sources:</p>\n <div className=\"flex flex-wrap gap-2\">\n {urls.slice(0, 3).map((url, i) => (\n <a\n key={i}\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'inline-flex items-center gap-1 text-xs hover:underline',\n purpleClasses.text,\n purpleClasses.hover,\n )}\n >\n <span>Source {i + 1}</span>\n <ExternalLinkIcon className=\"h-3 w-3\" />\n </a>\n ))}\n {urls.length > 3 && <span className=\"text-xs text-gray-400\">+{urls.length - 3} more</span>}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n};\n","import { createContext, useState, ReactNode } from 'react';\nimport { ModelSettings } from '../../types';\n\ntype NetworkContextType = {\n modelSettings: ModelSettings;\n setModelSettings: React.Dispatch<React.SetStateAction<ModelSettings>>;\n resetModelSettings: () => void;\n chatWithLoop: boolean;\n setChatWithLoop: React.Dispatch<React.SetStateAction<boolean>>;\n maxIterations: number | undefined;\n setMaxIterations: React.Dispatch<React.SetStateAction<number | undefined>>;\n};\n\nconst defaultModelSettings: ModelSettings = {\n maxRetries: 2,\n maxSteps: 5,\n temperature: 0.5,\n topP: 1,\n};\n\nexport const NetworkContext = createContext<NetworkContextType>({} as NetworkContextType);\n\nexport function NetworkProvider({ children }: { children: ReactNode }) {\n const [modelSettings, setModelSettings] = useState<ModelSettings>(defaultModelSettings);\n const [chatWithLoop, setChatWithLoop] = useState<boolean>(false);\n const [maxIterations, setMaxIterations] = useState<number | undefined>(undefined);\n\n const resetModelSettings = () => {\n setModelSettings(defaultModelSettings);\n setChatWithLoop(false);\n setMaxIterations(undefined);\n };\n\n return (\n <NetworkContext.Provider\n value={{\n modelSettings,\n setModelSettings,\n resetModelSettings,\n chatWithLoop,\n setChatWithLoop,\n maxIterations,\n setMaxIterations,\n }}\n >\n {children}\n </NetworkContext.Provider>\n );\n}\n","import { Thread } from '@/components/assistant-ui/thread';\nimport { MastraNetworkRuntimeProvider } from '@/services/network-runtime-provider';\nimport { ChatProps } from '@/types';\nimport { ToolFallback } from './tool-fallback';\nimport { useContext } from 'react';\nimport { NetworkContext } from './network-context';\n\nexport const NetworkChat = ({ agentId, memory }: ChatProps) => {\n const { modelSettings } = useContext(NetworkContext);\n\n return (\n <MastraNetworkRuntimeProvider agentId={agentId} memory={memory} modelSettings={modelSettings}>\n <Thread ToolFallback={ToolFallback} />\n </MastraNetworkRuntimeProvider>\n );\n};\n","import { NetworkContext } from '@/domains/networks';\nimport React, { createContext, useContext, ReactNode, useState } from 'react';\n\n//the whole workflow execution state.\n\ntype StateValue = {\n executionSteps: Array<string>;\n steps: Record<string, any>;\n runId?: string;\n};\n\ntype State = Record<string, StateValue>;\n\ntype VNextNetworkChatContextType = {\n state: State;\n handleStep: (uuid: string, record: Record<string, any>) => void;\n setState: React.Dispatch<React.SetStateAction<State>>;\n};\n\nconst VNextNetworkChatContext = createContext<VNextNetworkChatContextType | undefined>(undefined);\n\nexport const VNextNetworkChatProvider = ({ children }: { children: ReactNode }) => {\n const [state, setState] = useState<State>({});\n\n const { chatWithLoop } = useContext(NetworkContext);\n\n const handleStep = (uuid: string, record: Record<string, any>) => {\n const addFinishStep =\n (chatWithLoop && record.type === 'step-finish' && record.payload?.id === 'final-step') || record.type === 'error';\n let id = record?.type === 'finish' ? 'finish' : record.type === 'start' ? 'start' : record.payload?.id;\n\n if (id?.includes('mapping_')) return;\n\n setState(prevState => {\n const current = prevState[uuid];\n if (record.type === 'error') {\n id = current?.executionSteps?.[current?.executionSteps.length - 1];\n }\n const currentMetadata = current?.steps?.[id]?.metadata;\n\n let startTime = currentMetadata?.startTime;\n let endTime = currentMetadata?.endTime;\n\n if (record.type === 'step-start') {\n startTime = Date.now();\n }\n\n if (record.type === 'step-finish' || record.type === 'error') {\n endTime = Date.now();\n }\n\n return {\n ...prevState,\n [uuid]: {\n ...current,\n runId: current?.runId || record?.payload?.runId,\n executionSteps: current?.steps?.[id]\n ? [...current?.executionSteps, ...(addFinishStep ? ['finish'] : [])]\n : [...(current?.executionSteps || []), id],\n steps: {\n ...current?.steps,\n [id]: {\n ...(current?.steps?.[id] || {}),\n [record.type]: record.payload || record?.error,\n metadata: {\n startTime,\n endTime,\n },\n },\n },\n },\n };\n });\n };\n\n return (\n <VNextNetworkChatContext.Provider value={{ state, handleStep, setState }}>\n {children}\n </VNextNetworkChatContext.Provider>\n );\n};\n\nexport const useVNextNetworkChat = () => {\n const context = useContext(VNextNetworkChatContext);\n if (context === undefined) {\n throw new Error('useVNextNetworkChat must be used within a VNextNetworkChatProvider');\n }\n return context;\n};\n","import { cn } from '@/lib/utils';\n\nfunction Spinner({ color = '#fff', className }: { color?: string; className?: string }) {\n return (\n <svg\n className={cn('animate-spin duration-700', className)}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" stroke={color} />\n </svg>\n );\n}\n\nexport default Spinner;\n","import { toSigFigs } from '@/lib/number';\nimport { useEffect, useState } from 'react';\n\ninterface ClockProps {\n startedAt: number;\n endedAt?: number;\n}\n\nexport const Clock = ({ startedAt, endedAt }: ClockProps) => {\n const [time, setTime] = useState(startedAt);\n\n useEffect(() => {\n const interval = setInterval(() => {\n setTime(Date.now());\n }, 100);\n\n return () => clearInterval(interval);\n }, [startedAt]);\n\n const timeDiff = endedAt ? endedAt - startedAt : time - startedAt;\n\n return <span className=\"text-xs text-icon3\">{toSigFigs(timeDiff, 3)}ms</span>;\n};\n","import { cn } from '../../lib/utils';\n\nfunction Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn('animate-pulse rounded-md bg-muted/50', className)} {...props} />;\n}\n\nexport { Skeleton };\n","export const lodashTitleCase = (str: string): string => {\n // First convert to camel case (handles various separators like spaces, hyphens, underscores)\n const camelCased = str\n .replace(/[-_\\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))\n .replace(/^(.)/, char => char.toLowerCase());\n\n // Then convert to start case (capitalize first letter of each word)\n return camelCased\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, str => str.toUpperCase())\n .trim();\n};\n\nexport const toTitleCase = (str: string, splitChar = ' ') => {\n return str\n .split(splitChar)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n};\n","import Dagre from '@dagrejs/dagre';\nimport { Workflow, SerializedStepFlowEntry } from '@mastra/core/workflows';\nimport type { StepCondition } from '@mastra/core/workflows/legacy';\nimport type { Node, Edge } from '@xyflow/react';\nimport { MarkerType } from '@xyflow/react';\n\nexport type ConditionConditionType = 'if' | 'else' | 'when' | 'until' | 'while' | 'dountil' | 'dowhile';\n\nexport type Condition =\n | {\n type: ConditionConditionType;\n ref: {\n step:\n | {\n id: string;\n }\n | 'trigger';\n path: string;\n };\n query: Record<string, any>;\n conj?: 'and' | 'or' | 'not';\n fnString?: never;\n }\n | {\n type: ConditionConditionType;\n fnString: string;\n ref?: never;\n query?: never;\n conj?: never;\n };\n\nexport const pathAlphabet = 'abcdefghijklmnopqrstuvwxyz'.toUpperCase().split('');\n\nexport function extractConditions(group: StepCondition<any, any>, type: ConditionConditionType) {\n let result: Condition[] = [];\n if (!group) return result;\n\n function recurse(group: StepCondition<any, any>, conj?: 'and' | 'or' | 'not') {\n if (typeof group === 'string') {\n result.push({ type, fnString: group });\n } else {\n const simpleCondition = Object.entries(group).find(([key]) => key.includes('.'));\n if (simpleCondition) {\n const [key, queryValue] = simpleCondition;\n const [stepId, ...pathParts] = key.split('.');\n const ref = {\n step: {\n id: stepId,\n },\n path: pathParts.join('.'),\n };\n result.push({\n type,\n ref,\n query: { [queryValue === true || queryValue === false ? 'is' : 'eq']: String(queryValue) },\n conj,\n });\n }\n if ('ref' in group) {\n const { ref, query } = group;\n result.push({ type, ref, query, conj });\n }\n if ('and' in group) {\n for (const subGroup of group.and) {\n recurse({ ...subGroup }, 'and');\n }\n }\n if ('or' in group) {\n for (const subGroup of group.or) {\n recurse({ ...subGroup }, 'or');\n }\n }\n if ('not' in group) {\n recurse({ ...group.not }, 'not');\n }\n }\n }\n\n recurse(group);\n return result.reverse();\n}\n\nconst getLayoutedElements = (nodes: Node[], edges: Edge[]) => {\n const g = new Dagre.graphlib.Graph().setDefaultEdgeLabel(() => ({}));\n g.setGraph({ rankdir: 'TB' });\n\n edges.forEach(edge => g.setEdge(edge.source, edge.target));\n nodes.forEach(node =>\n g.setNode(node.id, {\n ...node,\n width: node.measured?.width ?? 274,\n height: node.measured?.height ?? (node?.data?.isLarge ? 260 : 100),\n }),\n );\n\n Dagre.layout(g);\n\n const fullWidth = g.graph()?.width ? g.graph().width! / 2 : 0;\n const fullHeight = g.graph()?.height ? g.graph().height! / 2 : 0;\n\n return {\n nodes: nodes.map(node => {\n const position = g.node(node.id);\n // We are shifting the dagre node position (anchor=center center) to the top left\n // so it matches the React Flow node anchor point (top left).\n const positionX = position.x - (node.measured?.width ?? 274) / 2;\n const positionY = position.y - (node.measured?.height ?? (node?.data?.isLarge ? 260 : 100)) / 2;\n const x = positionX;\n const y = positionY;\n\n return { ...node, position: { x, y } };\n }),\n edges,\n fullWidth,\n fullHeight,\n };\n};\n\nconst defaultEdgeOptions = {\n animated: true,\n markerEnd: {\n type: MarkerType.ArrowClosed,\n width: 20,\n height: 20,\n color: '#8e8e8e',\n },\n};\n\nexport type WStep = {\n [key: string]: {\n id: string;\n description: string;\n workflowId?: string;\n stepGraph?: any;\n stepSubscriberGraph?: any;\n };\n};\n\nexport const contructLegacyNodesAndEdges = ({\n stepGraph,\n stepSubscriberGraph,\n steps: mainSteps = {},\n}: {\n stepGraph: any;\n stepSubscriberGraph: any;\n steps?: WStep;\n}): { nodes: Node[]; edges: Edge[] } => {\n if (!stepGraph) {\n return { nodes: [], edges: [] };\n }\n const { initial, ...stepsList } = stepGraph;\n if (!initial.length) {\n return { nodes: [], edges: [] };\n }\n\n let nodes: Node[] = [];\n let edges: Edge[] = [];\n let allSteps: any[] = [];\n\n for (const [_index, _step] of initial.entries()) {\n const step = _step.step;\n const stepId = step.id;\n // let childrenNodes: Node[] = [];\n const steps = [_step, ...(stepsList?.[stepId] || [])]?.reduce((acc, step, i) => {\n const { stepGraph: stepWflowGraph, stepSubscriberGraph: stepWflowSubscriberGraph } =\n mainSteps[step.step.id] || {};\n const hasGraph = !!stepWflowGraph;\n\n const nodeId = nodes.some(node => node.id === step.step.id) ? `${step.step.id}-${i}` : step.step.id;\n\n let newStep = {\n ...step.step,\n label: step.step.id,\n originalId: step.step.id,\n type: hasGraph ? 'nested-node' : 'default-node',\n id: nodeId,\n stepGraph: stepWflowGraph,\n stepSubscriberGraph: stepWflowSubscriberGraph,\n };\n let conditionType: ConditionConditionType = 'when';\n if (step.config?.serializedWhen) {\n conditionType = step.step.id?.endsWith('_if') ? 'if' : step.step.id?.endsWith('_else') ? 'else' : 'when';\n const conditions = extractConditions(step.config.serializedWhen, conditionType);\n const conditionStep = {\n id: crypto.randomUUID(),\n conditions,\n type: 'condition-node',\n isLarge:\n (conditions?.length > 1 || conditions.some(({ fnString }) => !!fnString)) && conditionType !== 'else',\n };\n\n acc.push(conditionStep);\n }\n if (conditionType === 'if' || conditionType === 'else') {\n newStep = {\n ...newStep,\n label: conditionType === 'if' ? 'start if' : 'start else',\n };\n }\n newStep = {\n ...newStep,\n label: step.config?.loopLabel || newStep.label,\n };\n\n acc.push(newStep);\n\n return acc;\n }, []);\n\n allSteps = [...allSteps, ...steps];\n\n const newNodes = [...steps].map((step: any, index: number) => {\n const subscriberGraph = stepSubscriberGraph?.[step.id];\n\n return {\n id: step.id,\n position: { x: _index * 300, y: index * 100 },\n type: step.type,\n data: {\n conditions: step.conditions,\n label: step.label,\n description: step.description,\n withoutTopHandle: subscriberGraph?.[step.id] ? false : index === 0,\n withoutBottomHandle: subscriberGraph ? false : index === steps.length - 1,\n isLarge: step.isLarge,\n stepGraph: step.stepGraph,\n stepSubscriberGraph: step.stepSubscriberGraph,\n },\n };\n }) as Node[];\n\n nodes = [...nodes, ...newNodes];\n\n const edgeSteps = [...steps].slice(0, -1);\n\n const newEdges = edgeSteps.map((step: any, index: number) => ({\n id: `e${step.id}-${steps[index + 1].id}`,\n source: step.id,\n target: steps[index + 1].id,\n ...defaultEdgeOptions,\n }));\n\n edges = [...edges, ...newEdges];\n }\n\n if (!stepSubscriberGraph || !Object.keys(stepSubscriberGraph).length) {\n const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(nodes, edges);\n return { nodes: layoutedNodes, edges: layoutedEdges };\n }\n\n for (const [connectingStepId, stepInfoGraph] of Object.entries(stepSubscriberGraph)) {\n const { initial, ...stepsList } = stepInfoGraph as any;\n\n let untilOrWhileConditionId: string | undefined;\n const loopResultSteps: { id: string; loopType: string }[] = [];\n let finishedLoopStep: any | undefined;\n let otherLoopStep: any | undefined;\n\n if (initial.length) {\n for (const [_index, _step] of initial.entries()) {\n const step = _step.step;\n const stepId = step.id;\n // let childrenNodes: Node[] = [];\n const steps = [_step, ...(stepsList?.[stepId] || [])]?.reduce((acc, step, i) => {\n const { stepGraph: stepWflowGraph, stepSubscriberGraph: stepWflowSubscriberGraph } =\n mainSteps[step.step.id] || {};\n const hasGraph = !!stepWflowGraph;\n const nodeId = nodes.some(node => node.id === step.step.id) ? `${step.step.id}-${i}` : step.step.id;\n\n let newStep = {\n ...step.step,\n originalId: step.step.id,\n label: step.step.id,\n type: hasGraph ? 'nested-node' : 'default-node',\n id: nodeId,\n stepGraph: stepWflowGraph,\n stepSubscriberGraph: stepWflowSubscriberGraph,\n };\n let conditionType: ConditionConditionType = 'when';\n const isFinishedLoop = step.config?.loopLabel?.endsWith('loop finished');\n if (step.config?.serializedWhen && !isFinishedLoop) {\n conditionType = step.step.id?.endsWith('_if')\n ? 'if'\n : step.step.id?.endsWith('_else')\n ? 'else'\n : (step.config?.loopType ?? 'when');\n\n const conditions = extractConditions(step.config.serializedWhen, conditionType);\n const conditionStep = {\n id: crypto.randomUUID(),\n conditions,\n type: 'condition-node',\n isLarge:\n (conditions?.length > 1 || conditions.some(({ fnString }) => !!fnString)) && conditionType !== 'else',\n };\n if (conditionType === 'until' || conditionType === 'while') {\n untilOrWhileConditionId = conditionStep.id;\n }\n\n acc.push(conditionStep);\n }\n if (isFinishedLoop) {\n const loopResultStep = {\n id: crypto.randomUUID(),\n type: 'loop-result-node',\n loopType: 'finished',\n loopResult: step.config.loopType === 'until' ? true : false,\n };\n loopResultSteps.push(loopResultStep);\n acc.push(loopResultStep);\n }\n if (!isFinishedLoop && step.config?.loopType) {\n const loopResultStep = {\n id: crypto.randomUUID(),\n type: 'loop-result-node',\n loopType: step.config.loopType,\n loopResult: step.config.loopType === 'until' ? false : true,\n };\n loopResultSteps.push(loopResultStep);\n acc.push(loopResultStep);\n }\n if (conditionType === 'if' || conditionType === 'else') {\n newStep = {\n ...newStep,\n label: conditionType === 'if' ? 'start if' : 'start else',\n };\n }\n if (step.config.loopType) {\n if (isFinishedLoop) {\n finishedLoopStep = newStep;\n } else {\n otherLoopStep = newStep;\n }\n }\n newStep = {\n ...newStep,\n loopType: isFinishedLoop ? 'finished' : step.config.loopType,\n label: step.config?.loopLabel || newStep.label,\n };\n acc.push(newStep);\n return acc;\n }, []);\n\n let afterStep: any = [];\n let afterStepStepList = connectingStepId?.includes('&&') ? connectingStepId.split('&&') : [];\n if (connectingStepId?.includes('&&')) {\n afterStep = [\n {\n id: connectingStepId,\n label: connectingStepId,\n type: 'after-node',\n steps: afterStepStepList,\n },\n ];\n }\n\n const newNodes = [...steps, ...afterStep].map((step: any, index: number) => {\n const subscriberGraph = stepSubscriberGraph?.[step.id];\n const withBottomHandle = step.originalId === connectingStepId || subscriberGraph;\n return {\n id: step.id,\n position: { x: _index * 300 + 300, y: index * 100 + 100 },\n type: step.type,\n data: {\n conditions: step.conditions,\n label: step.label,\n description: step.description,\n result: step.loopResult,\n loopType: step.loopType,\n steps: step.steps,\n withoutBottomHandle: withBottomHandle ? false : index === steps.length - 1,\n isLarge: step.isLarge,\n stepGraph: step.stepGraph,\n stepSubscriberGraph: step.stepSubscriberGraph,\n },\n };\n }) as Node[];\n\n nodes = [...nodes, ...newNodes].map(node => ({\n ...node,\n data: {\n ...node.data,\n withoutBottomHandle: afterStepStepList.includes(node.id) ? false : node.data.withoutBottomHandle,\n },\n }));\n\n const edgeSteps = [...steps].slice(0, -1);\n\n const firstEdgeStep = steps[0];\n const lastEdgeStep = steps[steps.length - 1];\n\n const afterEdges = afterStepStepList?.map((step: any) => ({\n id: `e${step}-${connectingStepId}`,\n source: step,\n target: connectingStepId,\n ...defaultEdgeOptions,\n }));\n\n const finishedLoopResult = loopResultSteps?.find(step => step.loopType === 'finished');\n\n const newEdges = edgeSteps\n .map((step: any, index: number) => ({\n id: `e${step.id}-${steps[index + 1].id}`,\n source: step.id,\n target: steps[index + 1].id,\n remove: finishedLoopResult?.id === steps[index + 1].id, //remove if target is a finished loop result\n ...defaultEdgeOptions,\n }))\n ?.filter((edge: any) => !edge.remove);\n const connectingEdge =\n connectingStepId === firstEdgeStep.id\n ? []\n : [\n {\n id: `e${connectingStepId}-${firstEdgeStep.id}`,\n source: connectingStepId,\n target: firstEdgeStep.id,\n remove: finishedLoopResult?.id === firstEdgeStep.id,\n ...defaultEdgeOptions,\n },\n ]?.filter((edge: any) => !edge.remove); //remove if target is a finished loop result\n\n const lastEdge =\n lastEdgeStep.originalId === connectingStepId\n ? [\n {\n id: `e${lastEdgeStep.id}-${connectingStepId}`,\n source: lastEdgeStep.id,\n target: connectingStepId,\n ...defaultEdgeOptions,\n },\n ]\n : [];\n\n edges = [...edges, ...afterEdges, ...connectingEdge, ...newEdges, ...lastEdge];\n\n allSteps = [...allSteps, ...steps];\n }\n\n if (untilOrWhileConditionId && loopResultSteps.length && finishedLoopStep && otherLoopStep) {\n const loopResultStepsEdges = loopResultSteps.map(step => ({\n id: `e${untilOrWhileConditionId}-${step.id}`,\n source: untilOrWhileConditionId!,\n target: step.id,\n ...defaultEdgeOptions,\n }));\n\n const finishedLoopResult = loopResultSteps?.find(res => res.loopType === 'finished');\n const otherLoopResult = loopResultSteps?.find(res => res.loopType !== 'finished');\n\n const otherLoopEdge = {\n id: `e${otherLoopResult?.id}-${otherLoopStep?.id}`,\n source: otherLoopResult?.id!,\n target: otherLoopStep.id!,\n ...defaultEdgeOptions,\n };\n\n const finishedLoopEdge = {\n id: `e${finishedLoopResult?.id}-${finishedLoopStep?.id}`,\n source: finishedLoopResult?.id!,\n target: finishedLoopStep.id!,\n ...defaultEdgeOptions,\n };\n\n edges = [...edges, ...loopResultStepsEdges, otherLoopEdge, finishedLoopEdge];\n }\n }\n }\n const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(nodes, edges);\n\n return { nodes: layoutedNodes, edges: layoutedEdges };\n};\n\nconst getStepNodeAndEdge = ({\n stepFlow,\n xIndex,\n yIndex,\n prevNodeIds,\n prevStepIds,\n nextStepFlow,\n condition,\n allPrevNodeIds,\n}: {\n stepFlow: SerializedStepFlowEntry;\n xIndex: number;\n yIndex: number;\n prevNodeIds: string[];\n prevStepIds: string[];\n nextStepFlow?: SerializedStepFlowEntry;\n condition?: { id: string; fn: string };\n allPrevNodeIds: string[];\n}): { nodes: Node[]; edges: Edge[]; nextPrevNodeIds: string[]; nextPrevStepIds: string[] } => {\n let nextNodeIds: string[] = [];\n let nextStepIds: string[] = [];\n if (\n nextStepFlow?.type === 'step' ||\n nextStepFlow?.type === 'foreach' ||\n nextStepFlow?.type === 'loop' ||\n nextStepFlow?.type === 'waitForEvent'\n ) {\n const nextStepId = allPrevNodeIds?.includes(nextStepFlow.step.id)\n ? `${nextStepFlow.step.id}-${yIndex + 1}`\n : nextStepFlow.step.id;\n nextNodeIds = [nextStepId];\n nextStepIds = [nextStepFlow.step.id];\n }\n if (nextStepFlow?.type === 'sleep' || nextStepFlow?.type === 'sleepUntil') {\n const nextStepId = allPrevNodeIds?.includes(nextStepFlow.id) ? `${nextStepFlow.id}-${yIndex + 1}` : nextStepFlow.id;\n nextNodeIds = [nextStepId];\n nextStepIds = [nextStepFlow.id];\n }\n if (nextStepFlow?.type === 'parallel') {\n nextNodeIds =\n nextStepFlow?.steps.map(step => {\n const stepId = (step as { type: 'step'; step: { id: string } }).step.id;\n const nextStepId = allPrevNodeIds?.includes(stepId) ? `${stepId}-${yIndex + 1}` : stepId;\n return nextStepId;\n }) || [];\n nextStepIds = nextStepFlow?.steps.map(step => (step as { type: 'step'; step: { id: string } }).step.id) || [];\n }\n if (nextStepFlow?.type === 'conditional') {\n nextNodeIds = nextStepFlow?.serializedConditions.map(cond => cond.id) || [];\n nextStepIds = nextStepFlow?.steps?.map(step => (step as { type: 'step'; step: { id: string } }).step.id) || [];\n }\n\n if (stepFlow.type === 'step' || stepFlow.type === 'foreach' || stepFlow.type === 'waitForEvent') {\n const hasGraph = stepFlow.step.component === 'WORKFLOW';\n const nodeId = allPrevNodeIds?.includes(stepFlow.step.id) ? `${stepFlow.step.id}-${yIndex}` : stepFlow.step.id;\n const nodes = [\n ...(condition\n ? [\n {\n id: condition.id,\n position: { x: xIndex * 300, y: yIndex * 100 },\n type: 'condition-node',\n data: {\n label: condition.id,\n previousStepId: prevStepIds[prevStepIds.length - 1],\n nextStepId: stepFlow.step.id,\n withoutTopHandle: false,\n withoutBottomHandle: !nextNodeIds.length,\n isLarge: true,\n conditions: [{ type: 'when', fnString: condition.fn }],\n },\n },\n ]\n : []),\n {\n id: nodeId,\n position: { x: xIndex * 300, y: (yIndex + (condition ? 1 : 0)) * 100 },\n type: hasGraph ? 'nested-node' : 'default-node',\n data: {\n label: stepFlow.step.id,\n description: stepFlow.step.description,\n withoutTopHandle: condition ? false : !prevNodeIds.length,\n withoutBottomHandle: !nextNodeIds.length,\n stepGraph: hasGraph ? stepFlow.step.serializedStepFlow : undefined,\n mapConfig: stepFlow.step.mapConfig,\n ...(stepFlow.type === 'waitForEvent' ? { event: stepFlow.event } : {}),\n },\n },\n ];\n const edges = [\n ...(!prevNodeIds.length\n ? []\n : condition\n ? [\n ...prevNodeIds.map((prevNodeId, i) => ({\n id: `e${prevNodeId}-${condition.id}`,\n source: prevNodeId,\n data: { previousStepId: prevStepIds[i], nextStepId: stepFlow.step.id },\n target: condition.id,\n ...defaultEdgeOptions,\n })),\n {\n id: `e${condition.id}-${nodeId}`,\n source: condition.id,\n data: { previousStepId: prevStepIds[prevStepIds.length - 1], nextStepId: stepFlow.step.id },\n target: nodeId,\n ...defaultEdgeOptions,\n },\n ]\n : prevNodeIds.map((prevNodeId, i) => ({\n id: `e${prevNodeId}-${nodeId}`,\n source: prevNodeId,\n data: { previousStepId: prevStepIds[i], nextStepId: stepFlow.step.id },\n target: nodeId,\n ...defaultEdgeOptions,\n }))),\n ...(!nextNodeIds.length\n ? []\n : nextNodeIds.map((nextNodeId, i) => ({\n id: `e${nodeId}-${nextNodeId}`,\n source: nodeId,\n data: { previousStepId: stepFlow.step.id, nextStepId: nextStepIds[i] },\n target: nextNodeId,\n ...defaultEdgeOptions,\n }))),\n ];\n return { nodes, edges, nextPrevNodeIds: [nodeId], nextPrevStepIds: [stepFlow.step.id] };\n }\n\n if (stepFlow.type === 'sleep' || stepFlow.type === 'sleepUntil') {\n const nodeId = allPrevNodeIds?.includes(stepFlow.id) ? `${stepFlow.id}-${yIndex}` : stepFlow.id;\n const nodes = [\n ...(condition\n ? [\n {\n id: condition.id,\n position: { x: xIndex * 300, y: yIndex * 100 },\n type: 'condition-node',\n data: {\n label: condition.id,\n previousStepId: prevStepIds[prevStepIds.length - 1],\n nextStepId: stepFlow.id,\n withoutTopHandle: false,\n withoutBottomHandle: !nextNodeIds.length,\n isLarge: true,\n conditions: [{ type: 'when', fnString: condition.fn }],\n },\n },\n ]\n : []),\n {\n id: nodeId,\n position: { x: xIndex * 300, y: (yIndex + (condition ? 1 : 0)) * 100 },\n type: 'default-node',\n data: {\n label: stepFlow.id,\n withoutTopHandle: condition ? false : !prevNodeIds.length,\n withoutBottomHandle: !nextNodeIds.length,\n ...(stepFlow.type === 'sleepUntil' ? { date: stepFlow.date } : { duration: stepFlow.duration }),\n },\n },\n ];\n const edges = [\n ...(!prevNodeIds.length\n ? []\n : condition\n ? [\n ...prevNodeIds.map((prevNodeId, i) => ({\n id: `e${prevNodeId}-${condition.id}`,\n source: prevNodeId,\n data: { previousStepId: prevStepIds[i], nextStepId: stepFlow.id },\n target: condition.id,\n ...defaultEdgeOptions,\n })),\n {\n id: `e${condition.id}-${nodeId}`,\n source: condition.id,\n data: { previousStepId: prevStepIds[prevStepIds.length - 1], nextStepId: stepFlow.id },\n target: nodeId,\n ...defaultEdgeOptions,\n },\n ]\n : prevNodeIds.map((prevNodeId, i) => ({\n id: `e${prevNodeId}-${nodeId}`,\n source: prevNodeId,\n data: { previousStepId: prevStepIds[i], nextStepId: stepFlow.id },\n target: nodeId,\n ...defaultEdgeOptions,\n }))),\n ...(!nextNodeIds.length\n ? []\n : nextNodeIds.map((nextNodeId, i) => ({\n id: `e${nodeId}-${nextNodeId}`,\n source: nodeId,\n data: { previousStepId: stepFlow.id, nextStepId: nextStepIds[i] },\n target: nextNodeId,\n ...defaultEdgeOptions,\n }))),\n ];\n return { nodes, edges, nextPrevNodeIds: [nodeId], nextPrevStepIds: [stepFlow.id] };\n }\n\n if (stepFlow.type === 'loop') {\n const { step: _step, serializedCondition, loopType } = stepFlow;\n const hasGraph = _step.component === 'WORKFLOW';\n const nodes = [\n {\n id: _step.id,\n position: { x: xIndex * 300, y: yIndex * 100 },\n type: hasGraph ? 'nested-node' : 'default-node',\n data: {\n label: _step.id,\n description: _step.description,\n withoutTopHandle: !prevNodeIds.length,\n withoutBottomHandle: false,\n stepGraph: hasGraph ? _step.serializedStepFlow : undefined,\n },\n },\n {\n id: serializedCondition.id,\n position: { x: xIndex * 300, y: (yIndex + 1) * 100 },\n type: 'condition-node',\n data: {\n label: serializedCondition.id,\n // conditionStepId: _step.id,\n previousStepId: _step.id,\n nextStepId: nextStepIds[0],\n withoutTopHandle: false,\n withoutBottomHandle: !nextNodeIds.length,\n isLarge: true,\n conditions: [{ type: loopType, fnString: serializedCondition.fn }],\n },\n },\n ];\n\n const edges = [\n ...(!prevNodeIds.length\n ? []\n : prevNodeIds.map((prevNodeId, i) => ({\n id: `e${prevNodeId}-${_step.id}`,\n source: prevNodeId,\n data: { previousStepId: prevStepIds[i], nextStepId: _step.id },\n target: _step.id,\n ...defaultEdgeOptions,\n }))),\n {\n id: `e${_step.id}-${serializedCondition.id}`,\n source: _step.id,\n data: { previousStepId: _step.id, nextStepId: nextStepIds[0] },\n target: serializedCondition.id,\n ...defaultEdgeOptions,\n },\n ...(!nextNodeIds.length\n ? []\n : nextNodeIds.map((nextNodeId, i) => ({\n id: `e${serializedCondition.id}-${nextNodeId}`,\n source: serializedCondition.id,\n data: { previousStepId: _step.id, nextStepId: nextStepIds[i] },\n target: nextNodeId,\n ...defaultEdgeOptions,\n }))),\n ];\n\n return { nodes, edges, nextPrevNodeIds: [serializedCondition.id], nextPrevStepIds: [_step.id] };\n }\n\n if (stepFlow.type === 'parallel') {\n let nodes: Node[] = [];\n let edges: Edge[] = [];\n let nextPrevStepIds: string[] = [];\n stepFlow.steps.forEach((_stepFlow, index) => {\n const {\n nodes: _nodes,\n edges: _edges,\n nextPrevStepIds: _nextPrevStepIds,\n } = getStepNodeAndEdge({\n stepFlow: _stepFlow,\n xIndex: index,\n yIndex,\n prevNodeIds,\n prevStepIds,\n nextStepFlow,\n allPrevNodeIds,\n });\n nodes.push(..._nodes);\n edges.push(..._edges);\n nextPrevStepIds.push(..._nextPrevStepIds);\n });\n\n return { nodes, edges, nextPrevNodeIds: nodes.map(node => node.id), nextPrevStepIds };\n }\n\n if (stepFlow.type === 'conditional') {\n let nodes: Node[] = [];\n let edges: Edge[] = [];\n let nextPrevStepIds: string[] = [];\n stepFlow.steps.forEach((_stepFlow, index) => {\n const {\n nodes: _nodes,\n edges: _edges,\n nextPrevStepIds: _nextPrevStepIds,\n } = getStepNodeAndEdge({\n stepFlow: _stepFlow,\n xIndex: index,\n yIndex,\n prevNodeIds,\n prevStepIds,\n nextStepFlow,\n condition: stepFlow.serializedConditions[index],\n allPrevNodeIds,\n });\n nodes.push(..._nodes);\n edges.push(..._edges);\n nextPrevStepIds.push(..._nextPrevStepIds);\n });\n\n return {\n nodes,\n edges,\n nextPrevNodeIds: nodes.filter(({ type }) => type !== 'condition-node').map(node => node.id),\n nextPrevStepIds,\n };\n }\n\n return { nodes: [], edges: [], nextPrevNodeIds: [], nextPrevStepIds: [] };\n};\n\nexport const constructNodesAndEdges = ({\n stepGraph,\n}: {\n stepGraph: Workflow['serializedStepGraph'];\n}): { nodes: Node[]; edges: Edge[] } => {\n if (!stepGraph) {\n return { nodes: [], edges: [] };\n }\n\n if (stepGraph.length === 0) {\n return { nodes: [], edges: [] };\n }\n\n let nodes: Node[] = [];\n let edges: Edge[] = [];\n\n let prevNodeIds: string[] = [];\n let prevStepIds: string[] = [];\n let allPrevNodeIds: string[] = [];\n\n for (let index = 0; index < stepGraph.length; index++) {\n const {\n nodes: _nodes,\n edges: _edges,\n nextPrevNodeIds,\n nextPrevStepIds,\n } = getStepNodeAndEdge({\n stepFlow: stepGraph[index],\n xIndex: index,\n yIndex: index,\n prevNodeIds,\n prevStepIds,\n nextStepFlow: index === stepGraph.length - 1 ? undefined : stepGraph[index + 1],\n allPrevNodeIds,\n });\n nodes.push(..._nodes);\n edges.push(..._edges);\n prevNodeIds = nextPrevNodeIds;\n prevStepIds = nextPrevStepIds;\n allPrevNodeIds.push(...prevNodeIds);\n }\n\n const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(nodes, edges);\n\n return { nodes: layoutedNodes, edges: layoutedEdges };\n};\n","import type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\nimport React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst textVariants = cva('block', {\n variants: {\n variant: {\n primary: 'text-text',\n secondary: 'text-text-dim',\n },\n size: {\n default: 'text-base',\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-md',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n weight: 'normal',\n },\n});\n\nexport interface TextProps\n extends React.HTMLAttributes<HTMLParagraphElement | HTMLSpanElement | HTMLDivElement>,\n VariantProps<typeof textVariants> {\n as?: 'p' | 'span' | 'div';\n}\n\nexport const Text = ({ className, weight, variant, as: Tag = 'span', size, ...props }: TextProps) => {\n return <Tag className={cn(textVariants({ size, variant, weight, className }))} {...props} />;\n};\n","import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { useAutoscroll } from '@/hooks/use-autoscroll';\n\ninterface ScrollAreaProps extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {\n viewPortClassName?: string;\n maxHeight?: string;\n autoScroll?: boolean;\n}\n\nconst ScrollArea = React.forwardRef<React.ElementRef<typeof ScrollAreaPrimitive.Root>, ScrollAreaProps>(\n ({ className, children, viewPortClassName, maxHeight, autoScroll = false, ...props }, ref) => {\n const areaRef = React.useRef<HTMLDivElement>(null);\n useAutoscroll(areaRef, { enabled: autoScroll });\n\n return (\n <ScrollAreaPrimitive.Root ref={ref} className={cn('relative overflow-hidden', className)} {...props}>\n <ScrollAreaPrimitive.Viewport\n ref={areaRef}\n className={cn('h-full w-full rounded-[inherit] [&>div]:!block', viewPortClassName)}\n style={maxHeight ? { maxHeight } : undefined}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n },\n);\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import type { WorkflowRunState, StepResult } from '@mastra/core/workflows';\n\nimport { WorkflowWatchResult } from '@mastra/client-js';\n\nexport function convertWorkflowRunStateToWatchResult(runState: WorkflowRunState): WorkflowWatchResult {\n const runId = runState.runId;\n // Extract step information from the context\n const steps: Record<string, any> = {};\n const context = runState.context || {};\n\n // Convert each step in the context to the expected format\n Object.entries(context).forEach(([stepId, stepResult]) => {\n if (stepId !== 'input' && 'status' in stepResult) {\n const result = stepResult as StepResult<any, any, any, any>;\n steps[stepId] = {\n status: result.status,\n output: 'output' in result ? result.output : undefined,\n payload: 'payload' in result ? result.payload : undefined,\n resumePayload: 'resumePayload' in result ? result.resumePayload : undefined,\n error: 'error' in result ? result.error : undefined,\n startedAt: 'startedAt' in result ? result.startedAt : Date.now(),\n endedAt: 'endedAt' in result ? result.endedAt : undefined,\n suspendedAt: 'suspendedAt' in result ? result.suspendedAt : undefined,\n resumedAt: 'resumedAt' in result ? result.resumedAt : undefined,\n };\n }\n });\n\n // Determine the overall workflow status\n const status = determineWorkflowStatus(steps);\n\n return {\n type: 'watch',\n payload: {\n workflowState: {\n status,\n steps,\n result: runState.value,\n payload: context.input,\n error: undefined,\n },\n },\n eventTimestamp: new Date(runState.timestamp),\n runId,\n };\n}\n\nfunction determineWorkflowStatus(steps: Record<string, any>): 'running' | 'success' | 'failed' | 'suspended' {\n const stepStatuses = Object.values(steps).map(step => step.status);\n\n if (stepStatuses.includes('failed')) {\n return 'failed';\n }\n\n if (stepStatuses.includes('suspended')) {\n return 'suspended';\n }\n\n if (stepStatuses.every(status => status === 'success')) {\n return 'success';\n }\n\n return 'running';\n}\n","import { ExtendedLegacyWorkflowRunResult, ExtendedWorkflowWatchResult } from '@/hooks/use-workflows';\nimport { WorkflowRunState } from '@mastra/core';\nimport { WorkflowWatchResult } from '@mastra/client-js';\nimport { createContext, useEffect, useState } from 'react';\nimport { convertWorkflowRunStateToWatchResult } from '../utils';\n\ntype WorkflowRunContextType = {\n legacyResult: ExtendedLegacyWorkflowRunResult | null;\n setLegacyResult: React.Dispatch<React.SetStateAction<any>>;\n result: WorkflowWatchResult | null;\n setResult: React.Dispatch<React.SetStateAction<any>>;\n payload: any;\n setPayload: React.Dispatch<React.SetStateAction<any>>;\n clearData: () => void;\n snapshot?: WorkflowRunState;\n};\n\nexport const WorkflowRunContext = createContext<WorkflowRunContextType>({} as WorkflowRunContextType);\n\nexport function WorkflowRunProvider({\n children,\n snapshot,\n}: {\n children: React.ReactNode;\n snapshot?: WorkflowRunState;\n}) {\n const [legacyResult, setLegacyResult] = useState<ExtendedLegacyWorkflowRunResult | null>(null);\n const [result, setResult] = useState<WorkflowWatchResult | null>(() =>\n snapshot ? convertWorkflowRunStateToWatchResult(snapshot) : null,\n );\n const [payload, setPayload] = useState<any>(null);\n\n const clearData = () => {\n setLegacyResult(null);\n setResult(null);\n setPayload(null);\n };\n\n useEffect(() => {\n if (snapshot?.runId) {\n setResult(convertWorkflowRunStateToWatchResult(snapshot));\n } else {\n setResult(null);\n }\n }, [snapshot?.runId ?? '']);\n\n return (\n <WorkflowRunContext.Provider\n value={{\n legacyResult,\n setLegacyResult,\n result,\n setResult,\n payload,\n setPayload,\n clearData,\n snapshot,\n }}\n >\n {children}\n </WorkflowRunContext.Provider>\n );\n}\n","import { useContext } from 'react';\nimport { WorkflowRunContext } from './workflow-run-context';\n\nexport type Step = {\n error?: any;\n startedAt: number;\n endedAt?: number;\n status: 'running' | 'success' | 'failed' | 'suspended' | 'waiting';\n output?: any;\n input?: any;\n resumeData?: any;\n};\n\ntype UseCurrentRunReturnType = {\n steps: Record<string, Step>;\n isRunning: boolean;\n runId?: string;\n};\n\nexport const useCurrentRun = (): UseCurrentRunReturnType => {\n const context = useContext(WorkflowRunContext);\n\n const workflowCurrentSteps = context.result?.payload?.workflowState?.steps ?? {};\n const steps = Object.entries(workflowCurrentSteps).reduce((acc, [key, value]) => {\n return {\n ...acc,\n [key]: {\n error: value.error,\n startedAt: value.startedAt,\n endedAt: value.endedAt,\n status: value.status,\n output: value.output,\n input: value.payload,\n resumeData: value.resumePayload,\n },\n };\n }, {});\n\n return { steps, isRunning: Boolean(context.payload), runId: context.result?.runId };\n};\n","import CodeMirror from '@uiw/react-codemirror';\nimport { CopyButton } from '@/components/ui/copy-button';\nimport { useCodemirrorTheme } from '@/components/syntax-highlighter';\nimport { jsonLanguage } from '@codemirror/lang-json';\n\nexport const CodeDialogContent = ({ data }: { data: any }) => {\n const theme = useCodemirrorTheme();\n\n if (typeof data !== 'string') {\n return (\n <div className=\"max-h-[500px] overflow-auto relative p-4\">\n <div className=\"absolute right-2 top-2 bg-surface4 rounded-full z-10\">\n <CopyButton content={JSON.stringify(data, null, 2)} />\n </div>\n <div className=\"bg-surface4 rounded-lg p-4\">\n <CodeMirror value={JSON.stringify(data, null, 2)} theme={theme} extensions={[jsonLanguage]} />\n </div>\n </div>\n );\n }\n\n try {\n const json = JSON.parse(data);\n return (\n <div className=\"max-h-[500px] overflow-auto relative p-4\">\n <div className=\"absolute right-2 top-2 bg-surface4 rounded-full z-10\">\n <CopyButton content={data} />\n </div>\n <div className=\"bg-surface4 rounded-lg p-4\">\n <CodeMirror value={JSON.stringify(json, null, 2)} theme={theme} extensions={[jsonLanguage]} />\n </div>\n </div>\n );\n } catch (error) {\n return (\n <div className=\"max-h-[500px] overflow-auto relative p-4\">\n <div className=\"absolute right-2 top-2 bg-surface4 rounded-full z-10\">\n <CopyButton content={data} />\n </div>\n <div className=\"bg-surface4 rounded-lg p-4\">\n <CodeMirror value={data} theme={theme} extensions={[]} />\n </div>\n </div>\n );\n }\n};\n","import { DialogTitle } from '@/components/ui/dialog';\nimport { DialogContent } from '@/components/ui/dialog';\nimport { Button } from '@/ds/components/Button';\nimport { Dialog } from '@/components/ui/dialog';\nimport { CodeDialogContent } from './workflow-code-dialog-content';\nimport { useState } from 'react';\n\nexport interface WorkflowStepActionBarProps {\n input?: any;\n output?: any;\n resumeData?: any;\n error?: any;\n stepName: string;\n mapConfig?: string;\n onShowTrace?: () => void;\n onShowNestedGraph?: () => void;\n}\n\nexport const WorkflowStepActionBar = ({\n input,\n output,\n resumeData,\n error,\n mapConfig,\n stepName,\n onShowTrace,\n onShowNestedGraph,\n}: WorkflowStepActionBarProps) => {\n const [isInputOpen, setIsInputOpen] = useState(false);\n const [isOutputOpen, setIsOutputOpen] = useState(false);\n const [isResumeDataOpen, setIsResumeDataOpen] = useState(false);\n const [isErrorOpen, setIsErrorOpen] = useState(false);\n const [isMapConfigOpen, setIsMapConfigOpen] = useState(false);\n\n const dialogContentClass = 'bg-surface2 rounded-lg border-sm border-border1 max-w-4xl w-full px-0';\n const dialogTitleClass = 'border-b-sm border-border1 pb-4 px-6';\n\n return (\n <>\n {(input || output || error || mapConfig || resumeData || onShowNestedGraph) && (\n <div className=\"flex flex-wrap items-center bg-surface4 border-t-sm border-border1 px-2 py-1 gap-2 rounded-b-lg\">\n {onShowNestedGraph && <Button onClick={onShowNestedGraph}>View nested graph</Button>}\n {mapConfig && (\n <>\n <Button onClick={() => setIsMapConfigOpen(true)}>Map config</Button>\n\n <Dialog open={isMapConfigOpen} onOpenChange={setIsMapConfigOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{stepName} map config</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={mapConfig} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n {input && (\n <>\n <Button onClick={() => setIsInputOpen(true)}>Input</Button>\n\n <Dialog open={isInputOpen} onOpenChange={setIsInputOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{stepName} input</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={input} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n\n {resumeData && (\n <>\n <Button onClick={() => setIsResumeDataOpen(true)}>Resume data</Button>\n\n <Dialog open={isResumeDataOpen} onOpenChange={setIsResumeDataOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{stepName} resume data</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={resumeData} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n\n {output && (\n <>\n <Button onClick={() => setIsOutputOpen(true)}>Output</Button>\n\n <Dialog open={isOutputOpen} onOpenChange={setIsOutputOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{stepName} output</DialogTitle>\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={output} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n\n {error && (\n <>\n <Button onClick={() => setIsErrorOpen(true)}>Error</Button>\n\n <Dialog open={isErrorOpen} onOpenChange={setIsErrorOpen}>\n <DialogContent className={dialogContentClass}>\n <DialogTitle className={dialogTitleClass}>{stepName} error</DialogTitle>\n\n <div className=\"px-4 overflow-hidden\">\n <CodeDialogContent data={error} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n )}\n\n {onShowTrace && <Button onClick={onShowTrace}>Show trace</Button>}\n </div>\n )}\n </>\n );\n};\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { Fragment, useState } from 'react';\n\nimport { Text } from '@/components/ui/text';\n\nimport { cn } from '@/lib/utils';\n\nimport type { Condition } from './utils';\nimport { Highlight, themes } from 'prism-react-renderer';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport { ChevronDown, Network } from 'lucide-react';\nimport { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog';\nimport { ScrollArea } from '@/components/ui/scroll-area';\nimport { useCurrentRun } from '../context/use-current-run';\nimport { Badge } from '@/ds/components/Badge';\nimport { Icon } from '@/ds/icons';\nimport { WorkflowStepActionBar } from './workflow-step-action-bar';\n\nexport type ConditionNode = Node<\n {\n conditions: Condition[];\n previousStepId: string;\n nextStepId: string;\n mapConfig?: string;\n },\n 'condition-node'\n>;\n\nexport function WorkflowConditionNode({ data }: NodeProps<ConditionNode>) {\n const { conditions, previousStepId, nextStepId } = data;\n const [open, setOpen] = useState(true);\n const [openDialog, setOpenDialog] = useState(false);\n const type = conditions[0]?.type;\n const isCollapsible = (conditions.some(condition => condition.fnString) || conditions?.length > 1) && type !== 'else';\n\n const { steps } = useCurrentRun();\n\n const previousStep = steps[previousStepId];\n const nextStep = steps[nextStepId];\n\n return (\n <>\n <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />\n\n <div\n className={cn(\n 'bg-surface3 rounded-lg w-[300px] border-sm border-border1',\n previousStep?.status === 'success' && nextStep && 'ring-2 ring-accent1',\n previousStep?.status === 'failed' && nextStep && 'ring-2 ring-accent2',\n )}\n >\n <Collapsible\n open={!isCollapsible ? true : open}\n onOpenChange={_open => {\n if (isCollapsible) {\n setOpen(_open);\n }\n }}\n >\n <CollapsibleTrigger className=\"flex items-center justify-between w-full px-3 py-2\">\n <Badge icon={type === 'when' ? <Network className=\"text-[#ECB047]\" /> : null}>{type?.toUpperCase()}</Badge>\n {isCollapsible && (\n <Icon>\n <ChevronDown\n className={cn('transition-transform text-icon3', {\n 'transform rotate-180': open,\n })}\n />\n </Icon>\n )}\n </CollapsibleTrigger>\n\n {type === 'else' ? null : (\n <CollapsibleContent className=\"flex flex-col gap-2 pb-2\">\n {conditions.map((condition, index) => {\n return condition.fnString ? (\n <div key={`${condition.fnString}-${index}`} className=\"px-3\">\n <Highlight theme={themes.oneDark} code={String(condition.fnString).trim()} language=\"javascript\">\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={`${className} relative font-mono p-3 w-full cursor-pointer rounded-lg text-xs !bg-surface4 overflow-scroll`}\n onClick={() => setOpenDialog(true)}\n style={style}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n <span className=\"inline-block mr-2 text-muted-foreground\">{i + 1}</span>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n\n <Dialog open={openDialog} onOpenChange={setOpenDialog}>\n <DialogContent className=\"max-w-[30rem] bg-surface2 p-4\">\n <DialogTitle className=\"sr-only\">Condition Function</DialogTitle>\n <ScrollArea className=\"w-full p-2 pt-4\" maxHeight=\"400px\">\n <Highlight\n theme={themes.oneDark}\n code={String(condition.fnString).trim()}\n language=\"javascript\"\n >\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={`${className} relative font-mono text-sm overflow-x-auto p-3 w-full rounded-lg mt-2 dark:bg-zinc-800`}\n style={{\n ...style,\n backgroundColor: '#121212',\n padding: '0 0.75rem 0 0',\n }}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n <span className=\"inline-block mr-2 text-muted-foreground\">{i + 1}</span>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n </ScrollArea>\n </DialogContent>\n </Dialog>\n </div>\n ) : (\n <Fragment key={`${condition.ref?.path}-${index}`}>\n {condition.ref?.step ? (\n <div className=\"flex items-center gap-1\">\n {index === 0 ? null : (\n <Badge icon={<Network className=\"text-[#ECB047]\" />}>\n {condition.conj?.toLocaleUpperCase() || 'WHEN'}\n </Badge>\n )}\n\n <Text size={'xs'} className=\" text-mastra-el-3 flex-1\">\n {(condition.ref.step as any).id || condition.ref.step}'s {condition.ref.path}{' '}\n {Object.entries(condition.query).map(([key, value]) => `${key} ${String(value)}`)}\n </Text>\n </div>\n ) : null}\n </Fragment>\n );\n })}\n </CollapsibleContent>\n )}\n </Collapsible>\n\n <WorkflowStepActionBar stepName={nextStepId} input={previousStep?.output} mapConfig={data.mapConfig} />\n </div>\n\n <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />\n </>\n );\n}\n","import { Handle, Position, type NodeProps, type Node } from '@xyflow/react';\nimport { CircleDashed, HourglassIcon, Loader2, PauseIcon } from 'lucide-react';\nimport { useCurrentRun } from '../context/use-current-run';\nimport { CheckIcon, CrossIcon, Icon } from '@/ds/icons';\nimport { Txt } from '@/ds/components/Txt';\n\nimport { Clock } from './workflow-clock';\n\nimport { cn } from '@/lib/utils';\nimport { WorkflowStepActionBar } from './workflow-step-action-bar';\n\nexport type DefaultNode = Node<\n {\n label: string;\n description?: string;\n withoutTopHandle?: boolean;\n withoutBottomHandle?: boolean;\n mapConfig?: string;\n event?: string;\n duration?: number;\n date?: Date;\n },\n 'default-node'\n>;\n\nexport interface WorkflowDefaultNodeProps {\n onShowTrace?: ({ runId, stepName }: { runId: string; stepName: string }) => void;\n parentWorkflowName?: string;\n}\n\nexport function WorkflowDefaultNode({\n data,\n onShowTrace,\n parentWorkflowName,\n}: NodeProps<DefaultNode> & WorkflowDefaultNodeProps) {\n const { steps, isRunning, runId } = useCurrentRun();\n const { label, description, withoutTopHandle, withoutBottomHandle, mapConfig, event, duration, date } = data;\n\n const fullLabel = parentWorkflowName ? `${parentWorkflowName}.${label}` : label;\n\n const step = steps[fullLabel];\n\n return (\n <>\n {!withoutTopHandle && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n\n <div\n className={cn(\n 'bg-surface3 rounded-lg w-[274px] border-sm border-border1 pt-2',\n step?.status === 'success' && 'ring-2 ring-accent1',\n step?.status === 'failed' && 'ring-2 ring-accent2',\n step?.status === 'suspended' && 'ring-2 ring-accent3',\n step?.status === 'waiting' && 'ring-2 ring-accent5',\n )}\n >\n <div className={cn('flex items-center gap-2 px-3', !description && 'pb-2')}>\n {isRunning && (\n <Icon>\n {step?.status === 'failed' && <CrossIcon className=\"text-accent2\" />}\n {step?.status === 'success' && <CheckIcon className=\"text-accent1\" />}\n {step?.status === 'suspended' && <PauseIcon className=\"text-accent3\" />}\n {step?.status === 'waiting' && <HourglassIcon className=\"text-accent5\" />}\n {step?.status === 'running' && <Loader2 className=\"text-icon6 animate-spin\" />}\n {!step && <CircleDashed className=\"text-icon2\" />}\n </Icon>\n )}\n <Txt variant=\"ui-lg\" className=\"text-icon6 font-medium inline-flex items-center gap-1 justify-between w-full\">\n {label} {step?.startedAt && <Clock startedAt={step.startedAt} endedAt={step.endedAt} />}\n </Txt>\n </div>\n\n {description && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 px-3 pb-2\">\n {description}\n </Txt>\n )}\n\n {event && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 px-3 pb-2\">\n waits for event: <strong>{event}</strong>\n </Txt>\n )}\n {duration && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 px-3 pb-2\">\n sleeps for <strong>{duration}ms</strong>\n </Txt>\n )}\n\n {date && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 px-3 pb-2\">\n sleeps until <strong>{new Date(date).toLocaleString()}</strong>\n </Txt>\n )}\n\n <WorkflowStepActionBar\n stepName={label}\n input={step?.input}\n resumeData={step?.resumeData}\n output={step?.output}\n error={step?.error}\n mapConfig={mapConfig}\n onShowTrace={runId && onShowTrace ? () => onShowTrace?.({ runId, stepName: fullLabel }) : undefined}\n />\n </div>\n\n {!withoutBottomHandle && (\n <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden', color: 'red' }} />\n )}\n </>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { Fragment, useState } from 'react';\n\nimport { Text } from '@/components/ui/text';\n\nimport { cn } from '@/lib/utils';\n\nimport { Highlight, themes } from 'prism-react-renderer';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport { ChevronDown, Footprints } from 'lucide-react';\n\nexport type AfterNode = Node<\n {\n steps: string[];\n },\n 'after-node'\n>;\n\nexport function WorkflowAfterNode({ data }: NodeProps<AfterNode>) {\n const { steps } = data;\n const [open, setOpen] = useState(true);\n\n return (\n <Collapsible\n open={open}\n onOpenChange={setOpen}\n className={cn('bg-mastra-bg-3 rounded-md w-[274px] flex flex-col p-2 gap-2')}\n >\n <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />\n\n <CollapsibleTrigger className=\"flex items-center justify-between w-full\">\n <Text\n size={'xs'}\n weight=\"medium\"\n className=\"text-mastra-el-3 bg-mastra-bg-11 my-auto block rounded-[0.125rem] px-2 py-1 text-[10px] w-fit\"\n >\n AFTER\n </Text>\n <ChevronDown\n className={cn('w-4 h-4 transition-transform', {\n 'transform rotate-180': open,\n })}\n />\n </CollapsibleTrigger>\n <CollapsibleContent className=\"flex flex-col gap-2\">\n {steps.map(step => (\n <div className=\"text-sm bg-mastra-bg-9 flex items-center gap-[6px] rounded-sm p-2\" key={step}>\n <Footprints className=\"text-current w-4 h-4\" />\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {step}\n </Text>\n </div>\n ))}\n </CollapsibleContent>\n <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />\n </Collapsible>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { CircleCheck, CircleX } from 'lucide-react';\n\nimport { Text } from '@/components/ui/text';\n\nimport { cn } from '@/lib/utils';\n\nexport type LoopResultNode = Node<\n {\n result: boolean;\n },\n 'loop-result-node'\n>;\n\nexport function WorkflowLoopResultNode({ data }: NodeProps<LoopResultNode>) {\n const { result } = data;\n return (\n <div className={cn('bg-mastra-bg-8 rounded-md w-[274px]')}>\n <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />\n <div className=\"p-2\">\n <div className=\"text-sm bg-mastra-bg-9 flex items-center gap-[6px] rounded-sm p-2\">\n {result ? <CircleCheck className=\"text-current w-4 h-4\" /> : <CircleX className=\"text-current w-4 h-4\" />}\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {String(result)}\n </Text>\n </div>\n </div>\n <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />\n </div>\n );\n}\n","import React, { forwardRef } from 'react';\nimport { Maximize, Minus, Plus } from 'lucide-react';\n\nimport { Panel, useViewport, useReactFlow, PanelProps } from '@xyflow/react';\n\nimport { Slider } from '@/components/ui/slider';\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\n\nexport const ZoomSlider = forwardRef<HTMLDivElement, Omit<PanelProps, 'children'>>(({ className, ...props }) => {\n const { zoom } = useViewport();\n const { zoomTo, zoomIn, zoomOut, fitView } = useReactFlow();\n\n return (\n <Panel className={cn('flex gap-1 rounded-md bg-primary-foreground p-1 text-foreground', className)} {...props}>\n <Button variant=\"ghost\" size=\"icon\" onClick={() => zoomOut({ duration: 300 })}>\n <Minus className=\"h-4 w-4\" />\n </Button>\n <Slider\n className=\"w-[140px]\"\n value={[zoom]}\n min={0.01}\n max={1}\n step={0.01}\n onValueChange={values => {\n zoomTo(values[0]);\n }}\n />\n <Button variant=\"ghost\" size=\"icon\" onClick={() => zoomIn({ duration: 300 })}>\n <Plus className=\"h-4 w-4\" />\n </Button>\n <Button className=\"min-w-20 tabular-nums\" variant=\"ghost\" onClick={() => zoomTo(1, { duration: 300 })}>\n {(100 * zoom).toFixed(0)}%\n </Button>\n <Button variant=\"ghost\" size=\"icon\" onClick={() => fitView({ duration: 300, maxZoom: 1 })}>\n <Maximize className=\"h-4 w-4\" />\n </Button>\n </Panel>\n );\n});\n\nZoomSlider.displayName = 'ZoomSlider';\n","import {\n ReactFlow,\n MiniMap,\n Background,\n useNodesState,\n useEdgesState,\n BackgroundVariant,\n NodeProps,\n} from '@xyflow/react';\nimport '@xyflow/react/dist/style.css';\nimport { SerializedStepFlowEntry } from '@mastra/core/workflows';\n\nimport { constructNodesAndEdges } from './utils';\nimport { WorkflowConditionNode } from './workflow-condition-node';\nimport { DefaultNode, WorkflowDefaultNode } from './workflow-default-node';\nimport { WorkflowAfterNode } from './workflow-after-node';\nimport { WorkflowLoopResultNode } from './workflow-loop-result-node';\nimport { useEffect, useState } from 'react';\nimport Spinner from '@/components/ui/spinner';\nimport { NestedNode, WorkflowNestedNode } from './workflow-nested-node';\nimport { ZoomSlider } from './zoom-slider';\nimport { useCurrentRun } from '../context/use-current-run';\n\nexport interface WorkflowNestedGraphProps {\n stepGraph: SerializedStepFlowEntry[];\n open: boolean;\n workflowName: string;\n onShowTrace?: ({ runId, stepName }: { runId: string; stepName: string }) => void;\n}\n\nexport function WorkflowNestedGraph({ stepGraph, open, workflowName, onShowTrace }: WorkflowNestedGraphProps) {\n const { nodes: initialNodes, edges: initialEdges } = constructNodesAndEdges({\n stepGraph,\n });\n const [isMounted, setIsMounted] = useState(false);\n const [nodes, _, onNodesChange] = useNodesState(initialNodes);\n const [edges] = useEdgesState(initialEdges);\n const { steps } = useCurrentRun();\n\n const nodeTypes = {\n 'default-node': (props: NodeProps<DefaultNode>) => (\n <WorkflowDefaultNode parentWorkflowName={workflowName} onShowTrace={onShowTrace} {...props} />\n ),\n 'condition-node': WorkflowConditionNode,\n 'after-node': WorkflowAfterNode,\n 'loop-result-node': WorkflowLoopResultNode,\n 'nested-node': (props: NodeProps<NestedNode>) => (\n <WorkflowNestedNode parentWorkflowName={workflowName} onShowTrace={onShowTrace} {...props} />\n ),\n };\n\n useEffect(() => {\n if (open) {\n setTimeout(() => {\n setIsMounted(true);\n }, 500); // Delay to ensure modal is fully rendered\n }\n }, [open]);\n\n return (\n <div className=\"w-full h-full relative bg-surface1\">\n {isMounted ? (\n <ReactFlow\n nodes={nodes}\n edges={edges.map(e => ({\n ...e,\n style: {\n ...e.style,\n stroke:\n steps[`${workflowName}.${e.data?.previousStepId}`]?.status === 'success' &&\n steps[`${workflowName}.${e.data?.nextStepId}`]\n ? '#22c55e'\n : undefined,\n },\n }))}\n fitView\n fitViewOptions={{\n maxZoom: 1,\n }}\n minZoom={0.01}\n maxZoom={1}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n >\n <ZoomSlider position=\"bottom-left\" />\n <MiniMap pannable zoomable maskColor=\"#121212\" bgColor=\"#171717\" nodeColor=\"#2c2c2c\" />\n <Background variant={BackgroundVariant.Lines} gap={12} size={0.5} />\n </ReactFlow>\n ) : (\n <div className=\"w-full h-full flex items-center justify-center\">\n <Spinner />\n </div>\n )}\n </div>\n );\n}\n","import { Dialog, DialogContent, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { createContext, useState } from 'react';\nimport { ReactFlowProvider } from '@xyflow/react';\nimport { SerializedStepFlowEntry } from '@mastra/core/workflows';\nimport { Workflow } from 'lucide-react';\nimport { Text } from '@/components/ui/text';\nimport { WorkflowNestedGraph } from '../workflow/workflow-nested-graph';\nimport Spinner from '@/components/ui/spinner';\n\ntype WorkflowNestedGraphContextType = {\n showNestedGraph: ({\n label,\n stepGraph,\n fullStep,\n }: {\n label: string;\n stepGraph: SerializedStepFlowEntry[];\n fullStep: string;\n }) => void;\n closeNestedGraph: () => void;\n};\n\nexport const WorkflowNestedGraphContext = createContext<WorkflowNestedGraphContextType>(\n {} as WorkflowNestedGraphContextType,\n);\n\nexport function WorkflowNestedGraphProvider({\n children,\n onShowTrace,\n}: {\n children: React.ReactNode;\n onShowTrace?: ({ runId, stepName }: { runId: string; stepName: string }) => void;\n}) {\n const [stepGraph, setStepGraph] = useState<SerializedStepFlowEntry[] | null>(null);\n const [parentStepGraphList, setParentStepGraphList] = useState<\n { stepGraph: SerializedStepFlowEntry[]; label: string; fullStep: string }[]\n >([]);\n const [openDialog, setOpenDialog] = useState<boolean>(false);\n const [label, setLabel] = useState<string>('');\n const [fullStep, setFullStep] = useState<string>('');\n\n const closeNestedGraph = () => {\n if (parentStepGraphList.length) {\n const lastStepGraph = parentStepGraphList[parentStepGraphList.length - 1];\n setStepGraph(lastStepGraph.stepGraph);\n setLabel(lastStepGraph.label);\n setFullStep(lastStepGraph.fullStep);\n setParentStepGraphList(parentStepGraphList.slice(0, -1));\n } else {\n setOpenDialog(false);\n setStepGraph(null);\n setLabel('');\n setFullStep('');\n }\n };\n\n const showNestedGraph = ({\n label: newLabel,\n stepGraph: newStepGraph,\n fullStep: newFullStep,\n }: {\n label: string;\n stepGraph: SerializedStepFlowEntry[];\n fullStep: string;\n }) => {\n if (stepGraph) {\n setParentStepGraphList([...parentStepGraphList, { stepGraph, label, fullStep }]);\n }\n setLabel(newLabel);\n setFullStep(newFullStep);\n setStepGraph(newStepGraph);\n setOpenDialog(true);\n };\n\n return (\n <WorkflowNestedGraphContext.Provider\n value={{\n showNestedGraph,\n closeNestedGraph,\n }}\n >\n {children}\n\n <Dialog open={openDialog} onOpenChange={closeNestedGraph} key={`${label}-${fullStep}`}>\n <DialogPortal>\n <DialogContent className=\"w-[45rem] h-[45rem] max-w-[unset] bg-[#121212] p-[0.5rem]\">\n <DialogTitle className=\"flex items-center gap-1.5 absolute top-3 left-3 z-50\">\n <Workflow className=\"text-current w-4 h-4\" />\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {label} workflow\n </Text>\n </DialogTitle>\n <ReactFlowProvider>\n <WorkflowNestedGraph\n stepGraph={stepGraph!}\n open={openDialog}\n workflowName={fullStep}\n onShowTrace={onShowTrace}\n />\n </ReactFlowProvider>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n </WorkflowNestedGraphContext.Provider>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { CircleDashed, Loader2, PauseIcon } from 'lucide-react';\nimport { StepFlowEntry } from '@mastra/core/workflows';\n\nimport { cn } from '@/lib/utils';\nimport { useContext } from 'react';\nimport { WorkflowNestedGraphContext } from '../context/workflow-nested-graph-context';\nimport { useCurrentRun } from '../context/use-current-run';\nimport { CheckIcon, CrossIcon, Icon } from '@/ds/icons';\nimport { Txt } from '@/ds/components/Txt';\nimport { Clock } from './workflow-clock';\nimport { WorkflowStepActionBar } from './workflow-step-action-bar';\n\nexport type NestedNode = Node<\n {\n label: string;\n description?: string;\n withoutTopHandle?: boolean;\n withoutBottomHandle?: boolean;\n stepGraph: StepFlowEntry[];\n mapConfig?: string;\n },\n 'nested-node'\n>;\n\nexport interface WorkflowNestedNodeProps {\n onShowTrace?: ({ runId, stepName }: { runId: string; stepName: string }) => void;\n parentWorkflowName?: string;\n}\n\nexport function WorkflowNestedNode({\n data,\n parentWorkflowName,\n onShowTrace,\n}: NodeProps<NestedNode> & WorkflowNestedNodeProps) {\n const { steps, isRunning, runId } = useCurrentRun();\n const { showNestedGraph } = useContext(WorkflowNestedGraphContext);\n\n const { label, description, withoutTopHandle, withoutBottomHandle, stepGraph, mapConfig } = data;\n\n const fullLabel = parentWorkflowName ? `${parentWorkflowName}.${label}` : label;\n\n const step = steps[fullLabel];\n\n return (\n <>\n {!withoutTopHandle && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n <div\n className={cn(\n 'bg-surface3 rounded-lg w-[274px] border-sm border-border1 pt-2',\n step?.status === 'success' && 'ring-2 ring-accent1',\n step?.status === 'failed' && 'ring-2 ring-accent2',\n )}\n >\n <div className={cn('flex items-center gap-2 px-3', !description && 'pb-2')}>\n {isRunning && (\n <Icon>\n {step?.status === 'failed' && <CrossIcon className=\"text-accent2\" />}\n {step?.status === 'success' && <CheckIcon className=\"text-accent1\" />}\n {step?.status === 'suspended' && <PauseIcon className=\"text-icon3\" />}\n {step?.status === 'running' && <Loader2 className=\"text-icon6 animate-spin\" />}\n {!step && <CircleDashed className=\"text-icon2\" />}\n </Icon>\n )}\n <Txt variant=\"ui-lg\" className=\"text-icon6 font-medium inline-flex items-center gap-1 justify-between w-full\">\n {label} {step?.startedAt && <Clock startedAt={step.startedAt} endedAt={step.endedAt} />}\n </Txt>\n </div>\n\n {description && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 px-3 pb-2\">\n {description}\n </Txt>\n )}\n\n <WorkflowStepActionBar\n stepName={label}\n input={step?.input}\n resumeData={step?.resumeData}\n output={step?.output}\n error={step?.error}\n mapConfig={mapConfig}\n onShowTrace={runId && onShowTrace ? () => onShowTrace?.({ runId, stepName: fullLabel }) : undefined}\n onShowNestedGraph={() => showNestedGraph({ label, fullStep: fullLabel, stepGraph })}\n />\n </div>\n {!withoutBottomHandle && <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />}\n </>\n );\n}\n","import {\n ReactFlow,\n MiniMap,\n Background,\n useNodesState,\n useEdgesState,\n BackgroundVariant,\n NodeProps,\n} from '@xyflow/react';\nimport '@xyflow/react/dist/style.css';\nimport { GetWorkflowResponse } from '@mastra/client-js';\n\nimport { constructNodesAndEdges } from './utils';\nimport { WorkflowConditionNode } from './workflow-condition-node';\nimport { DefaultNode, WorkflowDefaultNode } from './workflow-default-node';\nimport { WorkflowAfterNode } from './workflow-after-node';\nimport { WorkflowLoopResultNode } from './workflow-loop-result-node';\nimport { NestedNode, WorkflowNestedNode } from './workflow-nested-node';\nimport { ZoomSlider } from './zoom-slider';\n\nimport { useCurrentRun } from '../context/use-current-run';\n\nexport interface WorkflowGraphInnerProps {\n workflow: {\n stepGraph: GetWorkflowResponse['stepGraph'];\n };\n onShowTrace?: ({ runId, stepName }: { runId: string; stepName: string }) => void;\n}\n\nexport function WorkflowGraphInner({ workflow, onShowTrace }: WorkflowGraphInnerProps) {\n const { nodes: initialNodes, edges: initialEdges } = constructNodesAndEdges(workflow);\n const [nodes, _, onNodesChange] = useNodesState(initialNodes);\n const [edges] = useEdgesState(initialEdges);\n const { steps, runId } = useCurrentRun();\n\n const nodeTypes = {\n 'default-node': (props: NodeProps<DefaultNode>) => <WorkflowDefaultNode onShowTrace={onShowTrace} {...props} />,\n 'condition-node': WorkflowConditionNode,\n 'after-node': WorkflowAfterNode,\n 'loop-result-node': WorkflowLoopResultNode,\n 'nested-node': (props: NodeProps<NestedNode>) => <WorkflowNestedNode onShowTrace={onShowTrace} {...props} />,\n };\n\n return (\n <div className=\"w-full h-full bg-surface1\">\n <ReactFlow\n nodes={nodes}\n edges={edges.map(e => ({\n ...e,\n style: {\n ...e.style,\n stroke:\n steps[e.data?.previousStepId as string]?.status === 'success' && steps[e.data?.nextStepId as string]\n ? '#22c55e'\n : undefined,\n },\n }))}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n fitView\n fitViewOptions={{\n maxZoom: 1,\n }}\n minZoom={0.01}\n maxZoom={1}\n >\n <ZoomSlider position=\"bottom-left\" />\n <MiniMap pannable zoomable maskColor=\"#121212\" bgColor=\"#171717\" nodeColor=\"#2c2c2c\" />\n <Background variant={BackgroundVariant.Dots} gap={12} size={0.5} />\n </ReactFlow>\n </div>\n );\n}\n","import { Skeleton } from '@/components/ui/skeleton';\n\nimport '../../../index.css';\n\nimport { lodashTitleCase } from '@/lib/string';\nimport { AlertCircleIcon } from 'lucide-react';\nimport { ReactFlowProvider } from '@xyflow/react';\nimport { WorkflowGraphInner } from './workflow-graph-inner';\nimport { WorkflowNestedGraphProvider } from '../context/workflow-nested-graph-context';\nimport { WorkflowRunContext } from '../context/workflow-run-context';\nimport { useContext } from 'react';\nimport { GetWorkflowResponse } from '@mastra/client-js';\n\nexport interface WorkflowGraphProps {\n workflowId: string;\n isLoading?: boolean;\n workflow?: GetWorkflowResponse;\n onShowTrace?: ({ runId, stepName }: { runId: string; stepName: string }) => void;\n}\n\nexport function WorkflowGraph({ workflowId, onShowTrace, workflow, isLoading }: WorkflowGraphProps) {\n const { snapshot } = useContext(WorkflowRunContext);\n\n if (isLoading) {\n return (\n <div className=\"p-4\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n }\n\n if (!workflow) {\n return (\n <div className=\"grid h-full place-items-center\">\n <div className=\"flex flex-col items-center gap-2\">\n <AlertCircleIcon />\n <div>We couldn't find {lodashTitleCase(workflowId)} workflow.</div>\n </div>\n </div>\n );\n }\n\n return (\n <WorkflowNestedGraphProvider key={snapshot?.runId ?? workflowId} onShowTrace={onShowTrace}>\n <ReactFlowProvider>\n <WorkflowGraphInner\n workflow={snapshot?.serializedStepGraph ? { stepGraph: snapshot?.serializedStepGraph } : workflow}\n onShowTrace={onShowTrace}\n />\n </ReactFlowProvider>\n </WorkflowNestedGraphProvider>\n );\n}\n","import { useMastraClient } from '@/contexts/mastra-client-context';\nimport { GetWorkflowRunsResponse } from '@mastra/client-js';\nimport { useEffect, useState } from 'react';\nimport { toast } from 'sonner';\n\nexport const useWorkflowRuns = (workflowId: string) => {\n const [runs, setRuns] = useState<GetWorkflowRunsResponse | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n\n const client = useMastraClient();\n\n useEffect(() => {\n const fetchWorkflow = async () => {\n setIsLoading(true);\n try {\n if (!workflowId) {\n setRuns(null);\n setIsLoading(false);\n return;\n }\n const res = await client.getWorkflow(workflowId).runs({ limit: 50 });\n setRuns(res);\n } catch (error) {\n setRuns(null);\n console.error('Error fetching workflow', error);\n toast.error('Error fetching workflow');\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchWorkflow();\n }, [workflowId]);\n\n return { runs, isLoading };\n};\n","import { useEffect, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { toast } from 'sonner';\nimport { LegacyWorkflowRunResult, WorkflowWatchResult, GetWorkflowResponse } from '@mastra/client-js';\nimport type { LegacyWorkflow } from '@mastra/core/workflows/legacy';\nimport { useMastraClient } from '@/contexts/mastra-client-context';\n\nexport type ExtendedLegacyWorkflowRunResult = LegacyWorkflowRunResult & {\n sanitizedOutput?: string | null;\n sanitizedError?: {\n message: string;\n stack?: string;\n } | null;\n};\n\nexport type ExtendedWorkflowWatchResult = WorkflowWatchResult & {\n sanitizedOutput?: string | null;\n sanitizedError?: {\n message: string;\n stack?: string;\n } | null;\n};\n\nexport const useWorkflow = (workflowId: string) => {\n const [workflow, setWorkflow] = useState<GetWorkflowResponse | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n\n const client = useMastraClient();\n\n useEffect(() => {\n const fetchWorkflow = async () => {\n setIsLoading(true);\n try {\n if (!workflowId) {\n setWorkflow(null);\n setIsLoading(false);\n return;\n }\n const res = await client.getWorkflow(workflowId).details();\n if (!res) {\n setWorkflow(null);\n console.error('Error fetching workflow');\n toast.error('Error fetching workflow');\n return;\n }\n setWorkflow(res);\n } catch (error) {\n setWorkflow(null);\n console.error('Error fetching workflow', error);\n toast.error('Error fetching workflow');\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchWorkflow();\n }, [workflowId]);\n\n return { workflow, isLoading };\n};\n\nexport const useLegacyWorkflow = (workflowId: string) => {\n const [legacyWorkflow, setLegacyWorkflow] = useState<LegacyWorkflow | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n\n const client = useMastraClient();\n\n useEffect(() => {\n const fetchWorkflow = async () => {\n setIsLoading(true);\n try {\n if (!workflowId) {\n setLegacyWorkflow(null);\n setIsLoading(false);\n return;\n }\n const res = await client.getLegacyWorkflow(workflowId).details();\n if (!res) {\n setLegacyWorkflow(null);\n console.error('Error fetching legacy workflow');\n toast.error('Error fetching legacy workflow');\n return;\n }\n const steps = res.steps;\n const stepsWithWorkflow = await Promise.all(\n Object.values(steps)?.map(async step => {\n if (!step.workflowId) return step;\n\n const wFlow = await client.getLegacyWorkflow(step.workflowId).details();\n\n if (!wFlow) return step;\n\n return { ...step, stepGraph: wFlow.stepGraph, stepSubscriberGraph: wFlow.stepSubscriberGraph };\n }),\n );\n const _steps = stepsWithWorkflow.reduce((acc, b) => {\n return { ...acc, [b.id]: b };\n }, {});\n setLegacyWorkflow({ ...res, steps: _steps } as LegacyWorkflow);\n } catch (error) {\n setLegacyWorkflow(null);\n console.error('Error fetching legacy workflow', error);\n toast.error('Error fetching legacy workflow');\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchWorkflow();\n }, [workflowId]);\n\n return { legacyWorkflow, isLoading };\n};\n\nexport const useExecuteWorkflow = () => {\n const client = useMastraClient();\n\n const createLegacyWorkflowRun = async ({ workflowId, prevRunId }: { workflowId: string; prevRunId?: string }) => {\n try {\n const workflow = client.getLegacyWorkflow(workflowId);\n const { runId: newRunId } = await workflow.createRun({ runId: prevRunId });\n return { runId: newRunId };\n } catch (error) {\n console.error('Error creating workflow run:', error);\n throw error;\n }\n };\n\n const startLegacyWorkflowRun = async ({\n workflowId,\n runId,\n input,\n }: {\n workflowId: string;\n runId: string;\n input: any;\n }) => {\n try {\n const workflow = client.getLegacyWorkflow(workflowId);\n await workflow.start({ runId, triggerData: input || {} });\n } catch (error) {\n console.error('Error starting workflow run:', error);\n throw error;\n }\n };\n\n return {\n startLegacyWorkflowRun,\n createLegacyWorkflowRun,\n };\n};\n\nexport const useWatchWorkflow = () => {\n const [isWatchingLegacyWorkflow, setIsWatchingLegacyWorkflow] = useState(false);\n const [legacyWatchResult, setLegacyWatchResult] = useState<ExtendedLegacyWorkflowRunResult | null>(null);\n const client = useMastraClient();\n\n // Debounce the state update to prevent too frequent renders\n const debouncedSetLegacyWorkflowWatchResult = useDebouncedCallback((record: ExtendedLegacyWorkflowRunResult) => {\n // Sanitize and limit the size of large data fields\n const formattedResults = Object.entries(record.results || {}).reduce(\n (acc, [key, value]) => {\n let output = value.status === 'success' ? value.output : undefined;\n if (output) {\n output = Object.entries(output).reduce(\n (_acc, [_key, _value]) => {\n const val = _value as { type: string; data: unknown };\n _acc[_key] = val.type?.toLowerCase() === 'buffer' ? { type: 'Buffer', data: `[...buffered data]` } : val;\n return _acc;\n },\n {} as Record<string, any>,\n );\n }\n acc[key] = { ...value, output };\n return acc;\n },\n {} as Record<string, any>,\n );\n const sanitizedRecord: ExtendedLegacyWorkflowRunResult = {\n ...record,\n sanitizedOutput: record\n ? JSON.stringify({ ...record, results: formattedResults }, null, 2).slice(0, 50000) // Limit to 50KB\n : null,\n };\n setLegacyWatchResult(sanitizedRecord);\n }, 100);\n\n const watchLegacyWorkflow = async ({ workflowId, runId }: { workflowId: string; runId: string }) => {\n try {\n setIsWatchingLegacyWorkflow(true);\n\n const workflow = client.getLegacyWorkflow(workflowId);\n\n await workflow.watch({ runId }, record => {\n try {\n debouncedSetLegacyWorkflowWatchResult(record);\n } catch (err) {\n console.error('Error processing workflow record:', err);\n // Set a minimal error state if processing fails\n setLegacyWatchResult({\n ...record,\n });\n }\n });\n } catch (error) {\n console.error('Error watching workflow:', error);\n\n throw error;\n } finally {\n setIsWatchingLegacyWorkflow(false);\n }\n };\n\n return {\n watchLegacyWorkflow,\n isWatchingLegacyWorkflow,\n legacyWatchResult,\n };\n};\n\nexport const useResumeWorkflow = () => {\n const [isResumingLegacyWorkflow, setIsResumingLegacyWorkflow] = useState(false);\n\n const client = useMastraClient();\n\n const resumeLegacyWorkflow = async ({\n workflowId,\n stepId,\n runId,\n context,\n }: {\n workflowId: string;\n stepId: string;\n runId: string;\n context: any;\n }) => {\n try {\n setIsResumingLegacyWorkflow(true);\n\n const response = await client.getLegacyWorkflow(workflowId).resume({ stepId, runId, context });\n\n return response;\n } catch (error) {\n console.error('Error resuming workflow:', error);\n throw error;\n } finally {\n setIsResumingLegacyWorkflow(false);\n }\n };\n\n return {\n resumeLegacyWorkflow,\n isResumingLegacyWorkflow,\n };\n};\n","import { useState } from 'react';\nimport { useVNextNetworkChat } from '@/services/vnext-network-chat-provider';\nimport { Button } from '@/ds/components/Button';\nimport Spinner from '@/components/ui/spinner';\nimport { CheckIcon, CrossIcon, Icon } from '@/ds/icons';\nimport { Txt } from '@/ds/components/Txt';\nimport { Clock } from '@/domains/workflows/workflow/workflow-clock';\nimport { Badge } from '@/ds/components/Badge';\nimport { ChevronDown } from 'lucide-react';\nimport clsx from 'clsx';\nimport { WorkflowGraph } from '@/domains/workflows/workflow/workflow-graph';\nimport { Dialog, DialogContent, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { WorkflowRunProvider } from '@/domains/workflows/context/workflow-run-context';\nimport { useWorkflowRuns } from '@/hooks/use-workflow-runs';\nimport { useWorkflow } from '@/hooks/use-workflows';\nimport { useMessage } from '@assistant-ui/react';\n\nconst LabelMappings = {\n 'Agent-Network-Outer-Workflow.routing-step': 'Decision making process',\n 'routing-step': 'Decision making process',\n 'agent-step': 'Agent execution',\n 'Agent-Network-Outer-Workflow.agent-step': 'Agent execution',\n 'workflow-step': 'Workflow execution',\n 'Agent-Network-Outer-Workflow.workflow-step': 'Workflow execution',\n toolStep: 'Tool execution',\n 'Agent-Network-Outer-Workflow.toolStep': 'Tool execution',\n 'final-step': 'Task completed',\n};\n\nexport const StepDropdown = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const { state } = useVNextNetworkChat();\n const message = useMessage();\n\n const id = message?.metadata?.custom?.id as string | undefined;\n\n if (!id) return <div>Something is wrong</div>;\n const currentState = state[id];\n\n const latestStepId = currentState.executionSteps\n ? currentState.executionSteps?.[currentState.executionSteps.length - 1]\n : '';\n const hasFinished = latestStepId === 'finish';\n\n const failed = Object.values(currentState?.steps || {}).some(\n step => step?.['error'] || step?.['step-result']?.status === 'failed',\n );\n\n return (\n <div className=\"space-y-2 mb-2\">\n <Button onClick={() => setIsExpanded(!isExpanded)}>\n {hasFinished ? (\n <>\n {failed ? (\n <>\n <Icon>\n <CrossIcon className=\"text-accent2\" />\n </Icon>\n Failed\n </>\n ) : (\n <>\n <Icon>\n <CheckIcon className=\"text-accent1\" />\n </Icon>\n Done\n </>\n )}\n </>\n ) : (\n <>\n <Icon>\n <Spinner className=\"animate-spin\" />\n </Icon>\n Thinking...\n </>\n )}\n\n <Icon className=\"ml-2\">\n <ChevronDown className={clsx('transition-transform -rotate-90', isExpanded && 'rotate-0')} />\n </Icon>\n </Button>\n\n {isExpanded ? <Steps id={id} /> : null}\n </div>\n );\n};\n\nconst Steps = ({ id }: { id: string }) => {\n const { state } = useVNextNetworkChat();\n const currentState = state[id];\n\n return (\n <ol className=\"flex flex-col gap-px rounded-lg overflow-hidden\">\n {currentState.executionSteps\n ?.filter(stepId => stepId !== 'start')\n .map((stepId: any, index: number) => (\n <StepEntry key={index} stepId={stepId} step={currentState.steps[stepId] || {}} runId={currentState.runId} />\n ))}\n </ol>\n );\n};\n\nconst StepEntry = ({ stepId, step, runId }: { stepId: any; step: any; runId?: string }) => {\n const [expanded, setExpanded] = useState(false);\n let stepResult = step['step-result'];\n const stepError = step['error'];\n\n if (stepId === 'workflow-step' || stepId === 'Agent-Network-Outer-Workflow.workflow-step') {\n const parsedResult = JSON.parse(stepResult?.output?.result ?? '{}') ?? {};\n if (!parsedResult?.runResult && stepResult?.status === 'success') {\n stepResult = {\n ...stepResult,\n status: 'failed',\n error: 'Something went wrong',\n };\n }\n }\n\n if (stepError) {\n stepResult = {\n ...stepResult,\n status: 'failed',\n error: stepError?.data?.error?.message,\n };\n }\n\n if (stepId === 'finish') {\n return (\n <div className=\"bg-surface4 py-2 px-3 text-icon6 flex items-center gap-4 justify-between\">\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n Process completed\n </Txt>\n </div>\n );\n }\n\n return (\n <li>\n <button\n className=\"bg-surface4 py-2 px-3 text-icon6 flex items-center gap-4 justify-between w-full text-left\"\n onClick={() => setExpanded(s => !s)}\n >\n <div className=\"flex items-center gap-2\">\n <StatusIcon status={stepResult ? stepResult?.status : 'loading'} />\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {LabelMappings[stepId as keyof typeof LabelMappings] || stepId}\n </Txt>\n </div>\n\n {step.metadata?.startTime && <StepClock step={step} />}\n </button>\n\n {(stepId === 'routing-step' || stepId === 'Agent-Network-Outer-Workflow.routing-step') && expanded && (\n <div className=\"bg-surface1 p-3 space-y-4\">\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Selection reason:\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepResult?.output?.selectionReason || 'N/A'}\n </Txt>\n </div>\n\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Resource ID\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepResult?.output?.resourceId || 'N/A'}\n </Txt>\n </div>\n\n {stepResult?.error ? (\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Error\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepResult?.error || 'N/A'}\n </Txt>\n </div>\n ) : null}\n </div>\n )}\n\n {(stepId === 'agent-step' || stepId === 'Agent-Network-Outer-Workflow.agent-step') &&\n (stepError || stepResult?.error) &&\n expanded && (\n <div className=\"bg-surface1 p-3 space-y-4\">\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Error\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepError?.message || stepError?.data?.error?.message || stepResult?.error || 'N/A'}\n </Txt>\n </div>\n </div>\n )}\n\n {(stepId === 'toolStep' || stepId === 'Agent-Network-Outer-Workflow.toolStep') &&\n (stepError || stepResult?.error) &&\n expanded && (\n <div className=\"bg-surface1 p-3 space-y-4\">\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Error\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepError?.message || stepError?.data?.error?.message || stepResult?.error || 'N/A'}\n </Txt>\n </div>\n </div>\n )}\n\n {stepId === 'final-step' && expanded && (\n <div className=\"bg-surface1 p-3 space-y-4\">\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Task:\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepResult?.output?.task || 'N/A'}\n </Txt>\n </div>\n\n <div>\n <Txt variant=\"ui-sm\" className=\"text-icon3 font-medium\">\n Number of iterations:\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"text-icon6\">\n {stepResult?.output?.iteration || 'N/A'}\n </Txt>\n </div>\n </div>\n )}\n\n {(stepId === 'workflow-step' || stepId === 'Agent-Network-Outer-Workflow.workflow-step') &&\n stepResult?.output?.resourceId ? (\n <WorkflowStepResultDialog\n open={expanded}\n onOpenChange={setExpanded}\n workflowId={stepResult?.output?.resourceId}\n runId={runId}\n />\n ) : null}\n </li>\n );\n};\n\ninterface WorkflowStepResultDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n workflowId: string;\n runId?: string;\n}\n\nconst WorkflowStepResultDialog = ({ open, onOpenChange, workflowId, runId }: WorkflowStepResultDialogProps) => {\n const { runs } = useWorkflowRuns(workflowId);\n const { workflow, isLoading } = useWorkflow(workflowId);\n const run = runs?.runs.find((run: any) => run.runId === runId);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogPortal>\n <DialogContent className=\"h-[90vh] w-[90%] max-w-[unset]\">\n <div className=\"flex-1 h-full\">\n <DialogTitle>Workflow details</DialogTitle>\n <WorkflowRunProvider snapshot={typeof run?.snapshot === 'object' ? run.snapshot : undefined}>\n <WorkflowGraph workflowId={workflowId} workflow={workflow!} isLoading={isLoading} />\n </WorkflowRunProvider>\n </div>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n );\n};\n\nconst StatusIcon = ({ status }: { status: 'failed' | 'success' | 'loading' }) => {\n if (status === 'failed') {\n return (\n <Icon>\n <CrossIcon className=\"text-accent2\" />\n </Icon>\n );\n }\n\n if (status === 'success') {\n return (\n <Icon>\n <CheckIcon className=\"text-accent1\" />\n </Icon>\n );\n }\n\n return (\n <Icon>\n <Spinner className=\"animate-spin\" />\n </Icon>\n );\n};\n\nconst StepClock = ({ step }: { step: any }) => {\n return (\n <Badge>\n <Clock startedAt={step.metadata.startTime} endedAt={step.metadata?.endTime} />\n </Badge>\n );\n};\n","import {\n ActionBarPrimitive,\n MessagePrimitive,\n TextContentPart,\n ToolCallContentPartComponent,\n useMessage,\n} from '@assistant-ui/react';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { FC } from 'react';\n\nimport { ToolFallback } from '@/components/assistant-ui/tool-fallback';\nimport { MarkdownText } from '@/components/assistant-ui/markdown-text';\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { StepDropdown } from './step-dropdown';\n\nexport const NextAssistantMessage: FC<{ ToolFallback?: ToolCallContentPartComponent }> = ({\n ToolFallback: ToolFallbackCustom,\n}) => {\n const data = useMessage();\n const isSolelyToolCall = data.content.length === 1 && data.content[0].type === 'tool-call';\n\n const content = data.content[0];\n\n if (!content) {\n return null;\n }\n\n const textContent = (content as TextContentPart).text;\n\n if (textContent === 'start') {\n return <StepDropdown />;\n }\n\n return (\n <MessagePrimitive.Root className=\"max-w-full\">\n <div className=\"text-icon6 text-ui-lg leading-ui-lg\">\n <MessagePrimitive.Content\n components={{\n Text: MarkdownText,\n tools: { Fallback: ToolFallbackCustom || ToolFallback },\n }}\n />\n </div>\n\n <div className=\"h-6 pt-1\">{!isSolelyToolCall && <AssistantActionBar />}</div>\n </MessagePrimitive.Root>\n );\n};\n\nconst AssistantActionBar: FC = () => {\n return (\n <ActionBarPrimitive.Root\n hideWhenRunning\n autohide=\"always\"\n autohideFloat=\"single-branch\"\n className=\"flex gap-1 items-center transition-all\"\n >\n <ActionBarPrimitive.Copy asChild>\n <TooltipIconButton tooltip=\"Copy\" className=\"bg-transparent text-icon3 hover:text-icon6\">\n <MessagePrimitive.If copied>\n <CheckIcon />\n </MessagePrimitive.If>\n <MessagePrimitive.If copied={false}>\n <CopyIcon />\n </MessagePrimitive.If>\n </TooltipIconButton>\n </ActionBarPrimitive.Copy>\n </ActionBarPrimitive.Root>\n );\n};\n","import {\n ComposerPrimitive,\n MessagePrimitive,\n ThreadPrimitive,\n ToolCallContentPartComponent,\n useComposerRuntime,\n} from '@assistant-ui/react';\nimport { ArrowUp, Mic, PlusIcon } from 'lucide-react';\nimport type { FC } from 'react';\n\nimport { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button';\nimport { Avatar, AvatarFallback } from '@/components/ui/avatar';\nimport { Button } from '@/components/ui/button';\n\nimport { UserMessage } from './user-message';\nimport { useEffect, useRef } from 'react';\nimport { useAutoscroll } from '@/hooks/use-autoscroll';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon, InfoIcon } from '@/ds/icons';\nimport { useSpeechRecognition } from '@/hooks/use-speech-recognition';\nimport { ComposerAttachments } from './attachment';\nimport { useHasAttachments } from './use-has-attachments';\nimport { NextAssistantMessage } from '@/domains/networks/v-next/wrapped-assistant-message';\nimport clsx from 'clsx';\n\nexport interface ThreadProps {\n ToolFallback?: ToolCallContentPartComponent;\n networkName?: string;\n hasMemory?: boolean;\n showFileSupport?: boolean;\n}\n\nexport const NetworkThread = ({ ToolFallback, networkName, hasMemory, showFileSupport }: ThreadProps) => {\n const areaRef = useRef<HTMLDivElement>(null);\n useAutoscroll(areaRef, { enabled: true });\n\n const WrappedAssistantMessage = (props: MessagePrimitive.Root.Props) => {\n return <NextAssistantMessage {...props} ToolFallback={ToolFallback} />;\n };\n\n return (\n <ThreadWrapper>\n <ThreadPrimitive.Viewport className=\"py-10 overflow-y-auto scroll-smooth h-full\" ref={areaRef} autoScroll={false}>\n <div>\n <ThreadWelcome networkName={networkName} />\n <ThreadPrimitive.Messages\n components={{\n UserMessage: UserMessage,\n EditComposer: EditComposer,\n AssistantMessage: WrappedAssistantMessage,\n }}\n />\n </div>\n\n <ThreadPrimitive.If empty={false}>\n <div />\n </ThreadPrimitive.If>\n </ThreadPrimitive.Viewport>\n\n <Composer hasMemory={hasMemory} showFileSupport={showFileSupport} />\n </ThreadWrapper>\n );\n};\n\nconst ThreadWrapper = ({ children }: { children: React.ReactNode }) => {\n const hasAttachments = useHasAttachments();\n\n return (\n <ThreadPrimitive.Root\n className={clsx(\n 'max-w-[568px] w-full mx-auto px-4',\n hasAttachments ? 'h-[calc(100%-208px)]' : 'h-[calc(100%-112px)]',\n )}\n >\n {children}\n </ThreadPrimitive.Root>\n );\n};\n\nexport interface ThreadWelcomeProps {\n networkName?: string;\n}\n\nconst ThreadWelcome = ({ networkName }: ThreadWelcomeProps) => {\n const safeNetworkName = networkName ?? '';\n const words = safeNetworkName.split(' ') ?? [];\n\n let initials = 'A';\n\n if (words.length === 2) {\n initials = `${words[0][0]}${words[1][0]}`;\n } else if (safeNetworkName.length > 0) {\n initials = `${safeNetworkName[0]}`;\n } else {\n initials = 'A';\n }\n\n return (\n <ThreadPrimitive.Empty>\n <div className=\"flex w-full flex-grow flex-col items-center justify-center\">\n <Avatar>\n <AvatarFallback>{initials}</AvatarFallback>\n </Avatar>\n <p className=\"mt-4 font-medium\">How can I help you today?</p>\n </div>\n </ThreadPrimitive.Empty>\n );\n};\n\nconst Composer: FC<{ hasMemory?: boolean; showFileSupport?: boolean }> = ({ hasMemory, showFileSupport }) => {\n return (\n <div>\n <ComposerPrimitive.Root>\n <ComposerAttachments />\n\n <div className=\"w-full bg-surface3 rounded-lg border-sm border-border1 px-3 py-4 mt-auto h-[100px]\">\n <ComposerPrimitive.Input asChild className=\"w-full\">\n <textarea\n className=\"text-ui-lg leading-ui-lg placeholder:text-icon3 text-icon6 bg-transparent focus:outline-none resize-none\"\n autoFocus\n placeholder=\"Enter your message...\"\n name=\"\"\n id=\"\"\n ></textarea>\n </ComposerPrimitive.Input>\n <div className=\"flex justify-end gap-2\">\n <SpeechInput />\n <ComposerAction showFileSupport={showFileSupport} />\n </div>\n </div>\n </ComposerPrimitive.Root>\n\n {!hasMemory && (\n <Txt variant=\"ui-sm\" className=\"text-icon3 flex items-center gap-2 pt-0.5\">\n <Icon>\n <InfoIcon />\n </Icon>\n Memory is not enabled. The conversation will not be persisted.\n </Txt>\n )}\n </div>\n );\n};\n\nconst SpeechInput = () => {\n const composerRuntime = useComposerRuntime();\n const { start, stop, isListening, transcript } = useSpeechRecognition();\n\n useEffect(() => {\n if (!transcript) return;\n\n composerRuntime.setText(transcript);\n }, [composerRuntime, transcript]);\n\n return (\n <TooltipIconButton\n type=\"button\"\n tooltip={isListening ? 'Stop dictation' : 'Start dictation'}\n variant=\"ghost\"\n className=\"rounded-full\"\n onClick={() => (isListening ? stop() : start())}\n >\n {isListening ? <CircleStopIcon /> : <Mic className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />}\n </TooltipIconButton>\n );\n};\n\nconst ComposerAction: FC<{ showFileSupport?: boolean }> = ({ showFileSupport }) => {\n return (\n <>\n {showFileSupport && (\n <ComposerPrimitive.AddAttachment asChild>\n <TooltipIconButton tooltip=\"Add attachment\" variant=\"ghost\" className=\"rounded-full\">\n <PlusIcon className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />\n </TooltipIconButton>\n </ComposerPrimitive.AddAttachment>\n )}\n\n <ThreadPrimitive.If running={false}>\n <ComposerPrimitive.Send asChild>\n <TooltipIconButton\n tooltip=\"Send\"\n variant=\"default\"\n className=\"rounded-full border-sm border-[#363636] bg-[#292929]\"\n >\n <ArrowUp className=\"h-6 w-6 text-[#898989] hover:text-[#fff]\" />\n </TooltipIconButton>\n </ComposerPrimitive.Send>\n </ThreadPrimitive.If>\n <ThreadPrimitive.If running>\n <ComposerPrimitive.Cancel asChild>\n <TooltipIconButton tooltip=\"Cancel\" variant=\"default\">\n <CircleStopIcon />\n </TooltipIconButton>\n </ComposerPrimitive.Cancel>\n </ThreadPrimitive.If>\n </>\n );\n};\n\nconst EditComposer: FC = () => {\n return (\n <ComposerPrimitive.Root>\n <ComposerPrimitive.Input />\n\n <div>\n <ComposerPrimitive.Cancel asChild>\n <Button variant=\"ghost\">Cancel</Button>\n </ComposerPrimitive.Cancel>\n <ComposerPrimitive.Send asChild>\n <Button>Send</Button>\n </ComposerPrimitive.Send>\n </div>\n </ComposerPrimitive.Root>\n );\n};\n\nconst CircleStopIcon = () => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" width=\"16\" height=\"16\">\n <rect width=\"10\" height=\"10\" x=\"3\" y=\"3\" rx=\"2\" />\n </svg>\n );\n};\n","import React from 'react';\nimport { TextContentPart, ThreadMessageLike } from '@assistant-ui/react';\nimport { createContext, ReactNode, useContext, useState } from 'react';\n\nconst MessagesContext = createContext<{\n messages: ThreadMessageLike[];\n setMessages: React.Dispatch<React.SetStateAction<ThreadMessageLike[]>>;\n appendToLastMessage: (partial: string) => void;\n}>({\n messages: [],\n setMessages: () => {},\n appendToLastMessage: () => {},\n});\n\nexport const MessagesProvider = ({ children }: { children: ReactNode }) => {\n const [messages, setMessages] = useState<ThreadMessageLike[]>([]);\n\n const appendToLastMessage = (partial: string) =>\n setMessages(msgs => {\n const lastMsg = msgs[msgs.length - 1];\n\n const content =\n typeof lastMsg.content === 'string' ? lastMsg.content : (lastMsg.content?.[0] as TextContentPart).text;\n\n return [\n ...msgs.slice(0, -1),\n {\n ...lastMsg,\n content: [{ type: 'text', text: content + partial }],\n },\n ];\n });\n\n return (\n <MessagesContext.Provider value={{ messages, setMessages, appendToLastMessage }}>\n {children}\n </MessagesContext.Provider>\n );\n};\n\nexport const useMessages = () => useContext(MessagesContext);\n","import prettier from 'prettier';\nimport prettierPluginBabel from 'prettier/plugins/babel';\nimport prettierPluginEstree from 'prettier/plugins/estree';\n\nexport const formatJSON = async (code: string) => {\n const formatted = await prettier.format(code, {\n semi: false,\n parser: 'json',\n printWidth: 80,\n tabWidth: 2,\n plugins: [prettierPluginBabel, prettierPluginEstree],\n });\n\n return formatted;\n};\n","'use client';\nimport { v4 as uuid } from '@lukeed/uuid';\n\nimport {\n useExternalStoreRuntime,\n ThreadMessageLike,\n AppendMessage,\n AssistantRuntimeProvider,\n} from '@assistant-ui/react';\nimport { useState, ReactNode, useEffect, useRef, useContext } from 'react';\n\nimport { AssistantMessage, ChatProps, Message } from '@/types';\nimport { useMastraClient } from '@/contexts/mastra-client-context';\nimport { useVNextNetworkChat } from '@/services/vnext-network-chat-provider';\nimport { useMessages } from './vnext-message-provider';\nimport { formatJSON } from '@/lib/formatting';\nimport { NetworkContext } from '@/domains/networks';\n\nconst convertMessage = (message: ThreadMessageLike): ThreadMessageLike => {\n return message;\n};\n\ntype VNextMastraNetworkRuntimeProviderProps = Omit<ChatProps, 'agentId' | 'agentName' | 'modelSettings'> & {\n networkId: string;\n};\n\nexport function VNextMastraNetworkRuntimeProvider({\n children,\n networkId,\n memory,\n threadId,\n refreshThreadList,\n initialMessages,\n}: Readonly<{\n children: ReactNode;\n}> &\n VNextMastraNetworkRuntimeProviderProps) {\n const runIdRef = useRef<string | undefined>(undefined);\n const [isRunning, setIsRunning] = useState(false);\n const { messages, setMessages, appendToLastMessage } = useMessages();\n const [currentThreadId, setCurrentThreadId] = useState<string | undefined>(threadId);\n\n const { handleStep, state, setState } = useVNextNetworkChat();\n const { chatWithLoop, maxIterations } = useContext(NetworkContext);\n const id = runIdRef.current;\n const currentState = id ? state[id] : undefined;\n\n useEffect(() => {\n if (!currentState) return;\n const hasFinished = Boolean(currentState?.steps?.['finish']);\n if (!hasFinished) return;\n\n const workflowStep = currentState?.steps?.['workflow-step'];\n const toolStep = currentState?.steps?.['toolStep'];\n if (!workflowStep && !toolStep) return;\n\n const workflowStepResult = workflowStep?.['step-result'];\n const toolStepResult = toolStep?.['step-result'];\n if (!workflowStepResult && !toolStepResult) return;\n\n const workflowStepResultOutput = workflowStepResult?.output;\n const toolStepResultOutput = toolStepResult?.output;\n if (!workflowStepResultOutput && !toolStepResultOutput) return;\n\n const run = async () => {\n const parsedResult = workflowStepResult\n ? (JSON.parse(workflowStepResult?.output?.result ?? '{}') ?? {})\n : { runResult: toolStepResultOutput?.result ?? {} };\n if (parsedResult?.runResult) {\n const runResult = parsedResult?.runResult ?? {};\n const formatted = await formatJSON(JSON.stringify(runResult));\n\n setMessages(msgs => [\n ...msgs,\n { role: 'assistant', content: [{ type: 'text', text: `\\`\\`\\`json\\n${formatted}\\`\\`\\`` }] },\n ]);\n }\n };\n\n run();\n }, [currentState]);\n\n useEffect(() => {\n if (messages.length === 0 || currentThreadId !== threadId) {\n const run = async (result: string, messageId: string) => {\n const formatted = await formatJSON(result);\n\n const finalResponse = `\\`\\`\\`json\\n${formatted}\\`\\`\\``;\n\n setMessages(currentConversation => {\n return currentConversation.map(message => {\n if (message.metadata?.custom?.id === messageId) {\n return { ...message, content: [{ type: 'text', text: finalResponse }] };\n }\n return message;\n });\n });\n };\n\n if (initialMessages && threadId && memory) {\n let userMessage = '';\n let iteration = 1;\n const formattedMessages: (\n | { role: 'user'; message: Message }\n | {\n role: 'assistant';\n message: AssistantMessage;\n }\n )[] = [];\n\n let assistantStep: AssistantMessage = freshAssistantStep();\n\n // First pass: collect user messages and assistant steps\n for (let i = 0; i < initialMessages.length; i++) {\n const message = initialMessages[i];\n if (message.role === 'user') {\n assistantStep = freshAssistantStep();\n userMessage = message.content;\n formattedMessages.push({\n role: 'user',\n message,\n });\n continue;\n }\n if (message.role === 'assistant') {\n const responseArray = message.parts ?? [];\n let hasRoutingDecision = false;\n let hasTaskCompleteDecision = false;\n let directText = '';\n let jsonStringResponse = '';\n\n for (const part of responseArray) {\n if (part.type === 'text' && part.text) {\n const parsed = safeParse(part.text);\n\n // Routing decision: must have resourceId and resourceType\n if (parsed?.resourceId && parsed?.resourceType) {\n hasRoutingDecision = true;\n assistantStep.routingDecision = parsed;\n }\n\n // Completion: look for isComplete boolean\n if (typeof parsed?.isComplete === 'boolean') {\n hasTaskCompleteDecision = true;\n assistantStep.taskCompleteDecision = parsed;\n if (parsed?.isComplete) {\n assistantStep.finalResponse = parsed.finalResult;\n formattedMessages.push({ role: 'assistant', message: assistantStep });\n assistantStep = freshAssistantStep();\n }\n }\n\n // If not JSON, or not a routing/result/completion blob, treat as finalResponse\n if (!parsed || (!parsed.resourceId && !parsed.runResult && typeof parsed.isComplete !== 'boolean')) {\n directText = part.text;\n }\n\n if (parsed && !parsed.resourceId && typeof parsed.isComplete !== 'boolean') {\n jsonStringResponse = part.text;\n }\n }\n }\n\n if (!hasRoutingDecision && !hasTaskCompleteDecision) {\n assistantStep.finalResponse = directText || jsonStringResponse;\n\n if (assistantStep.routingDecision || assistantStep.finalResponse) {\n formattedMessages.push({ role: 'assistant', message: assistantStep });\n assistantStep = freshAssistantStep();\n }\n }\n }\n // If this is the last message, push any remaining assistantStep\n if (i === initialMessages.length - 1 && (assistantStep.routingDecision || assistantStep.finalResponse)) {\n formattedMessages.push({ role: 'assistant', message: assistantStep });\n }\n }\n\n for (const formattedMessage of formattedMessages) {\n const { role, message } = formattedMessage;\n if (role === 'user') {\n iteration = 1;\n userMessage = message.content;\n setMessages(currentConversation => {\n if (currentConversation.some(m => m.id === message.id)) {\n return currentConversation;\n }\n return [...currentConversation, message];\n });\n }\n if (role === 'assistant') {\n const { id, formattedMessageId, finalStepId, routingDecision, finalResponse, taskCompleteDecision } =\n message;\n let resourceStepId = '';\n if (routingDecision?.resourceType === 'agent') resourceStepId = 'agent-step';\n if (routingDecision?.resourceType === 'tool') resourceStepId = 'toolStep';\n if (routingDecision?.resourceType === 'workflow') resourceStepId = 'workflow-step';\n\n let runId = '';\n let runResult = {};\n\n let finalStep = null;\n let finalResult = '';\n\n if (resourceStepId === 'workflow-step' || resourceStepId === 'toolStep') {\n const parsedResult = JSON.parse(finalResponse ?? '{}') ?? {};\n runResult = resourceStepId === 'workflow-step' ? (parsedResult?.runResult ?? {}) : (parsedResult ?? {});\n runId = parsedResult?.runId ?? '';\n }\n\n if (taskCompleteDecision?.isComplete) {\n finalStep = {\n executionSteps: ['start', 'routing-step', 'final-step', 'finish'],\n runId: '',\n steps: {\n start: {},\n 'routing-step': {\n 'step-result': {\n output: {\n selectionReason: taskCompleteDecision?.completionReason ?? '',\n },\n status: 'success',\n },\n },\n 'final-step': {\n 'step-result': {\n output: {\n iteration,\n task: userMessage,\n },\n status: 'success',\n },\n },\n finish: {},\n },\n };\n\n finalResult = taskCompleteDecision?.finalResult;\n }\n\n const routingStepFailed =\n resourceStepId === 'workflow-step' || resourceStepId === 'toolStep'\n ? Object.keys(runResult).length === 0\n : !finalResponse;\n\n setState(currentState => {\n return {\n ...currentState,\n\n ...(finalStep\n ? { [finalStepId]: finalStep }\n : {\n [id]: {\n executionSteps: ['start', 'routing-step', resourceStepId, 'finish'],\n runId,\n steps: {\n start: {},\n 'routing-step': {\n 'step-result': {\n output: routingDecision,\n status: routingDecision ? 'success' : 'failed',\n ...(routingDecision ? {} : { error: 'Something went wrong' }),\n },\n },\n [resourceStepId]: {\n 'step-result': {\n output: {\n resourceId: routingDecision?.resourceId,\n result: finalResponse ?? '',\n },\n status: routingStepFailed ? 'failed' : 'success',\n ...(routingStepFailed ? { error: 'Something went wrong' } : {}),\n },\n },\n finish: {},\n },\n },\n }),\n };\n });\n\n setMessages(currentConversation => {\n const assistantRoutingMessageExist = currentConversation.some(\n message => message.metadata?.custom?.id === id,\n );\n const assistantResponseMessageExist = currentConversation.some(\n message => message.metadata?.custom?.id === formattedMessageId,\n );\n return [\n ...currentConversation,\n\n ...(finalResult\n ? ([\n {\n role: 'assistant',\n metadata: {\n custom: {\n id: finalStepId,\n },\n },\n content: [\n {\n type: 'text',\n text: 'start',\n },\n ],\n },\n {\n role: 'assistant',\n content: [{ type: 'text', text: finalResult }],\n },\n ] as ThreadMessageLike[])\n : [\n ...(assistantRoutingMessageExist\n ? []\n : ([\n {\n role: 'assistant',\n metadata: {\n custom: {\n id,\n },\n },\n content: [\n {\n type: 'text',\n text: 'start',\n },\n ],\n },\n ] as ThreadMessageLike[])),\n ...(assistantResponseMessageExist\n ? []\n : ([\n {\n role: 'assistant',\n content: [\n {\n type: 'text',\n text:\n resourceStepId === 'workflow-step' || resourceStepId === 'toolStep'\n ? ''\n : finalResponse,\n },\n ],\n metadata: {\n custom: {\n id: formattedMessageId,\n },\n },\n },\n ] as ThreadMessageLike[])),\n ]),\n ];\n });\n\n if ((resourceStepId === 'workflow-step' || resourceStepId === 'toolStep') && !routingStepFailed) {\n run(JSON.stringify(runResult), formattedMessageId);\n }\n iteration++;\n }\n }\n setCurrentThreadId(threadId);\n }\n }\n }, [initialMessages, threadId, memory, messages]);\n\n const mastra = useMastraClient();\n\n const network = mastra.getVNextNetwork(networkId);\n\n const onNew = async (message: AppendMessage) => {\n runIdRef.current = undefined;\n\n if (message.content[0]?.type !== 'text') throw new Error('Only text messages are supported');\n\n const input = message.content[0].text;\n setMessages(currentConversation => [...currentConversation, { role: 'user', content: input }]);\n setIsRunning(true);\n\n try {\n if (chatWithLoop) {\n const run = async (result: string, messageId: string) => {\n const formatted = await formatJSON(result);\n\n const finalResponse = `\\`\\`\\`json\\n${formatted}\\`\\`\\``;\n\n setMessages(currentConversation => {\n return currentConversation.map(message => {\n if (message.metadata?.custom?.id === messageId) {\n return { ...message, content: [{ type: 'text', text: finalResponse }] };\n }\n return message;\n });\n });\n };\n\n let isAgentNetworkOuterWorkflowCompleted = false;\n\n await network.loopStream(\n {\n message: input,\n threadId,\n resourceId: networkId,\n maxIterations,\n },\n async (record: any) => {\n if (\n (record as any).type === 'step-start' &&\n (record as any).payload?.id === 'Agent-Network-Outer-Workflow'\n ) {\n const id = uuid();\n runIdRef.current = id;\n\n setMessages(currentConversation => {\n return [\n ...currentConversation,\n {\n role: 'assistant',\n metadata: {\n custom: {\n id,\n },\n },\n content: [\n {\n type: 'text',\n text: 'start',\n },\n ],\n },\n ];\n });\n } else if (runIdRef.current) {\n if ((record as any).type === 'tool-call-delta') {\n appendToLastMessage((record as any).argsTextDelta);\n } else if ((record as any).type === 'tool-call-streaming-start') {\n setMessages(msgs => [...msgs, { role: 'assistant', content: [{ type: 'text', text: '' }] }]);\n setTimeout(() => {\n refreshThreadList?.();\n }, 500);\n return;\n } else {\n if (\n (record as any).type === 'step-finish' &&\n (record as any).payload?.id === 'Agent-Network-Outer-Workflow'\n ) {\n if (!isAgentNetworkOuterWorkflowCompleted) {\n handleStep(runIdRef.current, { ...record, type: 'finish' });\n runIdRef.current = undefined;\n }\n } else if (\n (record as any).type === 'step-result' &&\n ((record as any).payload?.id === 'Agent-Network-Outer-Workflow.workflow-step' ||\n (record as any).payload?.id === 'Agent-Network-Outer-Workflow.toolStep')\n ) {\n handleStep(runIdRef.current, record);\n const result = record?.payload?.output?.result;\n const parsedResult =\n typeof result === 'string'\n ? (JSON.parse(record?.payload?.output?.result ?? '{}') ?? {})\n : { runResult: result };\n const runResult = parsedResult?.runResult ?? {};\n const formatedOutputId = uuid();\n\n setMessages(msgs => [\n ...msgs,\n {\n role: 'assistant',\n content: [\n {\n type: 'text',\n text: '',\n },\n ],\n metadata: {\n custom: {\n id: formatedOutputId,\n },\n },\n },\n ]);\n\n run(JSON.stringify(runResult), formatedOutputId);\n } else if (\n record.payload?.id === 'Agent-Network-Outer-Workflow' ||\n record.payload?.id === 'finish-step'\n ) {\n if (record.type === 'step-result' && record.payload?.id === 'Agent-Network-Outer-Workflow') {\n isAgentNetworkOuterWorkflowCompleted = record?.payload?.output?.isComplete;\n }\n } else {\n handleStep(runIdRef.current, record);\n }\n }\n }\n\n if (record.type === 'step-result' && record.payload?.id === 'final-step') {\n setMessages(msgs => [\n ...msgs,\n { role: 'assistant', content: [{ type: 'text', text: record.payload?.output?.result }] },\n ]);\n }\n\n if (record.type === 'step-finish' && record.payload?.id === 'final-step') {\n runIdRef.current = undefined;\n }\n\n if (record.type === 'start' || record.type === 'step-start' || record.type === 'finish') {\n setTimeout(() => {\n refreshThreadList?.();\n }, 500);\n }\n },\n );\n } else {\n await network.stream(\n {\n message: input,\n threadId,\n resourceId: networkId,\n },\n (record: any) => {\n if (runIdRef.current) {\n if ((record as any).type === 'tool-call-delta') {\n appendToLastMessage((record as any).argsTextDelta);\n } else if ((record as any).type === 'tool-call-streaming-start') {\n setMessages(msgs => [...msgs, { role: 'assistant', content: [{ type: 'text', text: '' }] }]);\n return;\n } else {\n handleStep(runIdRef.current, record);\n }\n } else if ((record as any).type === 'start') {\n const id = uuid();\n runIdRef.current = id;\n\n setMessages(currentConversation => {\n return [\n ...currentConversation,\n {\n role: 'assistant',\n metadata: {\n custom: {\n id,\n },\n },\n content: [\n {\n type: 'text',\n text: 'start',\n },\n ],\n },\n ];\n });\n }\n\n if (record.type === 'start' || record.type === 'step-start' || record.type === 'finish') {\n setTimeout(() => {\n refreshThreadList?.();\n }, 500);\n }\n },\n );\n }\n\n setIsRunning(false);\n } catch (error) {\n console.error('Error occurred in VNextMastraNetworkRuntimeProvider', error);\n setIsRunning(false);\n }\n };\n\n const runtime = useExternalStoreRuntime<ThreadMessageLike>({\n isRunning,\n messages,\n convertMessage,\n onNew,\n });\n\n return <AssistantRuntimeProvider runtime={runtime}> {children} </AssistantRuntimeProvider>;\n\n // Helper: Safe JSON parse\n function safeParse(str: string) {\n try {\n return JSON.parse(str);\n } catch {\n return undefined;\n }\n }\n\n function freshAssistantStep(): AssistantMessage {\n return {\n id: uuid(),\n formattedMessageId: uuid(),\n finalStepId: uuid(),\n finalResponse: '',\n };\n }\n}\n","import { NetworkThread } from '@/components/assistant-ui/network-threads';\nimport { Message } from '@/types';\nimport { VNextMastraNetworkRuntimeProvider } from '@/services/vnext-network-runtime-provider';\nimport { VNextNetworkChatProvider } from '@/services/vnext-network-chat-provider';\nimport { MessagesProvider } from '@/services/vnext-message-provider';\n\nexport const VNextNetworkChat = ({\n networkId,\n networkName,\n threadId,\n initialMessages,\n memory,\n refreshThreadList,\n}: {\n networkId: string;\n networkName: string;\n threadId: string;\n initialMessages?: Message[];\n memory?: boolean;\n refreshThreadList?: () => void;\n}) => {\n return (\n <MessagesProvider key={threadId}>\n <VNextNetworkChatProvider key={threadId}>\n <VNextMastraNetworkRuntimeProvider\n key={threadId}\n networkId={networkId}\n initialMessages={initialMessages ?? []}\n threadId={threadId}\n memory={memory}\n refreshThreadList={refreshThreadList}\n >\n <div className=\"h-full pb-4\">\n <NetworkThread hasMemory={memory} networkName={networkName} />\n </div>\n </VNextMastraNetworkRuntimeProvider>\n </VNextNetworkChatProvider>\n </MessagesProvider>\n );\n};\n","import { useContext, useEffect, useRef, useState } from 'react';\n\nimport { TraceContext, TraceProvider } from '@/domains/traces/context/trace-context';\n\nimport { TracesTable } from '@/domains/traces/traces-table';\nimport { TracesSidebar } from '@/domains/traces/traces-sidebar';\nimport { RefinedTrace } from '@/domains/traces/types';\n\nexport interface WorkflowTracesProps {\n traces: RefinedTrace[];\n error: { message: string } | null;\n runId?: string;\n stepName?: string;\n}\n\nexport function WorkflowTraces({ traces, error, runId, stepName }: WorkflowTracesProps) {\n return (\n <TraceProvider initialTraces={traces || []}>\n <WorkflowTracesInner traces={traces} error={error} runId={runId} stepName={stepName} />\n </TraceProvider>\n );\n}\n\nfunction WorkflowTracesInner({ traces, error, runId, stepName }: WorkflowTracesProps) {\n // This is a hack. To fix, The provider should not resolve the data like this.\n // We should resolve the data first and pass them to the provider instead of having the proving setState on the result.\n const hasRunRef = useRef(false);\n const [sidebarWidth, setSidebarWidth] = useState(100);\n const { isOpen: open, setTrace, setIsOpen, setSpan } = useContext(TraceContext);\n\n useEffect(() => {\n if (hasRunRef.current) return;\n if (!runId || !stepName) return;\n\n const matchingTrace = traces.find(trace => trace.runId === runId);\n if (!matchingTrace) return;\n\n const matchingSpan = matchingTrace.trace.find(span => span.name.includes(stepName));\n if (!matchingSpan) return;\n\n setTrace(matchingTrace.trace);\n setSpan(matchingSpan);\n setIsOpen(true);\n hasRunRef.current = true;\n }, [runId, traces, setTrace]);\n\n return (\n <main className=\"h-full relative overflow-hidden flex\">\n <div className=\"h-full overflow-y-scroll w-full\">\n <TracesTable traces={traces} error={error} />\n </div>\n\n {open && <TracesSidebar width={sidebarWidth} onResize={setSidebarWidth} />}\n </main>\n );\n}\n","import {\n ReactFlow,\n MiniMap,\n Controls,\n Background,\n useNodesState,\n useEdgesState,\n BackgroundVariant,\n} from '@xyflow/react';\nimport '@xyflow/react/dist/style.css';\n\nimport { contructLegacyNodesAndEdges } from './utils';\nimport { WorkflowConditionNode } from './workflow-condition-node';\nimport { WorkflowDefaultNode } from './workflow-default-node';\nimport { WorkflowAfterNode } from './workflow-after-node';\nimport { WorkflowLoopResultNode } from './workflow-loop-result-node';\nimport { useEffect, useState } from 'react';\nimport Spinner from '@/components/ui/spinner';\n\nexport function LegacyWorkflowNestedGraph({\n stepGraph,\n stepSubscriberGraph,\n open,\n}: {\n stepGraph: any;\n stepSubscriberGraph: any;\n open: boolean;\n}) {\n const { nodes: initialNodes, edges: initialEdges } = contructLegacyNodesAndEdges({\n stepGraph: stepGraph,\n stepSubscriberGraph: stepSubscriberGraph,\n });\n const [isMounted, setIsMounted] = useState(false);\n const [nodes, _, onNodesChange] = useNodesState(initialNodes);\n const [edges] = useEdgesState(initialEdges);\n\n const nodeTypes = {\n 'default-node': WorkflowDefaultNode,\n 'condition-node': WorkflowConditionNode,\n 'after-node': WorkflowAfterNode,\n 'loop-result-node': WorkflowLoopResultNode,\n };\n\n useEffect(() => {\n if (open) {\n setTimeout(() => {\n setIsMounted(true);\n }, 500); // Delay to ensure modal is fully rendered\n }\n }, [open]);\n\n return (\n <div className=\"w-full h-full relative\">\n {isMounted ? (\n <ReactFlow\n nodes={nodes}\n edges={edges}\n fitView\n fitViewOptions={{ maxZoom: 0.85 }}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n >\n <Controls />\n <MiniMap pannable zoomable maskColor=\"#121212\" bgColor=\"#171717\" nodeColor=\"#2c2c2c\" />\n <Background variant={BackgroundVariant.Lines} gap={12} size={0.5} />\n </ReactFlow>\n ) : (\n <div className=\"w-full h-full flex items-center justify-center\">\n <Spinner />\n </div>\n )}\n </div>\n );\n}\n","import { Dialog, DialogContent, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { createContext, useState } from 'react';\nimport { LegacyWorkflowNestedGraph } from '../workflow/legacy-workflow-nested-graph';\nimport { ReactFlowProvider } from '@xyflow/react';\nimport { Workflow } from 'lucide-react';\nimport { Text } from '@/components/ui/text';\n\ntype LegacyWorkflowNestedGraphContextType = {\n showNestedGraph: ({\n label,\n stepGraph,\n stepSubscriberGraph,\n }: {\n label: string;\n stepGraph: any;\n stepSubscriberGraph: any;\n }) => void;\n closeNestedGraph: () => void;\n};\n\nexport const LegacyWorkflowNestedGraphContext = createContext<LegacyWorkflowNestedGraphContextType>(\n {} as LegacyWorkflowNestedGraphContextType,\n);\n\nexport function LegacyWorkflowNestedGraphProvider({ children }: { children: React.ReactNode }) {\n const [stepGraph, setStepGraph] = useState<any>(null);\n const [stepSubscriberGraph, setStepSubscriberGraph] = useState<any>(null);\n const [openDialog, setOpenDialog] = useState<boolean>(false);\n const [label, setLabel] = useState<string>('');\n\n const closeNestedGraph = () => {\n setOpenDialog(false);\n setStepGraph(null);\n setStepSubscriberGraph(null);\n setLabel('');\n };\n\n const showNestedGraph = ({\n label,\n stepGraph,\n stepSubscriberGraph,\n }: {\n label: string;\n stepGraph: any;\n stepSubscriberGraph: any;\n }) => {\n setLabel(label);\n setStepGraph(stepGraph);\n setStepSubscriberGraph(stepSubscriberGraph);\n setOpenDialog(true);\n };\n\n return (\n <LegacyWorkflowNestedGraphContext.Provider\n value={{\n showNestedGraph,\n closeNestedGraph,\n }}\n >\n {children}\n\n <Dialog open={openDialog} onOpenChange={closeNestedGraph}>\n <DialogPortal>\n <DialogContent className=\"w-[40rem] h-[40rem] bg-[#121212] p-[0.5rem]\">\n <DialogTitle className=\"flex items-center gap-1.5 absolute top-2.5 left-2.5\">\n <Workflow className=\"text-current w-4 h-4\" />\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {label} workflow\n </Text>\n </DialogTitle>\n <ReactFlowProvider>\n <LegacyWorkflowNestedGraph\n stepGraph={stepGraph}\n open={openDialog}\n stepSubscriberGraph={stepSubscriberGraph}\n />\n </ReactFlowProvider>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n </LegacyWorkflowNestedGraphContext.Provider>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps, Node } from '@xyflow/react';\nimport { Workflow } from 'lucide-react';\n\nimport { Text } from '@/components/ui/text';\n\nimport { cn } from '@/lib/utils';\nimport { useContext } from 'react';\nimport { LegacyWorkflowNestedGraphContext } from '../context/legacy-workflow-nested-graph-context';\n\ntype LegacyWorkflowNestedNode = Node<\n {\n label: string;\n description?: string;\n withoutTopHandle?: boolean;\n withoutBottomHandle?: boolean;\n stepGraph: any;\n stepSubscriberGraph: any;\n },\n 'nested-node'\n>;\n\nexport function LegacyWorkflowNestedNode({ data }: NodeProps<LegacyWorkflowNestedNode>) {\n const { label, withoutTopHandle, withoutBottomHandle, stepGraph, stepSubscriberGraph } = data;\n const { showNestedGraph } = useContext(LegacyWorkflowNestedGraphContext);\n return (\n <div className={cn('bg-[rgba(29,29,29,0.5)] rounded-md h-full overflow-scroll w-[274px]')}>\n {!withoutTopHandle && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n <div className=\"p-2 cursor-pointer\" onClick={() => showNestedGraph({ label, stepGraph, stepSubscriberGraph })}>\n <div className=\"text-sm bg-mastra-bg-9 flex items-center gap-1.5 rounded-sm p-2 cursor-pointer\">\n <Workflow className=\"text-current w-4 h-4\" />\n <Text size=\"xs\" weight=\"medium\" className=\"text-mastra-el-6 capitalize\">\n {label}\n </Text>\n </div>\n </div>\n {!withoutBottomHandle && <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />}\n </div>\n );\n}\n","import type { LegacyWorkflow } from '@mastra/core/workflows/legacy';\nimport {\n ReactFlow,\n MiniMap,\n Controls,\n Background,\n useNodesState,\n useEdgesState,\n BackgroundVariant,\n} from '@xyflow/react';\nimport '@xyflow/react/dist/style.css';\n\nimport { contructLegacyNodesAndEdges, WStep } from './utils';\nimport { WorkflowConditionNode } from './workflow-condition-node';\nimport { WorkflowDefaultNode } from './workflow-default-node';\nimport { WorkflowAfterNode } from './workflow-after-node';\nimport { WorkflowLoopResultNode } from './workflow-loop-result-node';\nimport { LegacyWorkflowNestedNode } from './legacy-workflow-nested-node';\n\nexport function LegacyWorkflowGraphInner({ workflow }: { workflow: LegacyWorkflow }) {\n const { nodes: initialNodes, edges: initialEdges } = contructLegacyNodesAndEdges({\n stepGraph: workflow.serializedStepGraph || workflow.stepGraph,\n stepSubscriberGraph: workflow.serializedStepSubscriberGraph || workflow.stepSubscriberGraph,\n steps: workflow.steps as WStep,\n });\n const [nodes, _, onNodesChange] = useNodesState(initialNodes);\n const [edges] = useEdgesState(initialEdges);\n\n const nodeTypes = {\n 'default-node': WorkflowDefaultNode,\n 'condition-node': WorkflowConditionNode,\n 'after-node': WorkflowAfterNode,\n 'loop-result-node': WorkflowLoopResultNode,\n 'nested-node': LegacyWorkflowNestedNode,\n };\n\n return (\n <div className=\"w-full h-full\">\n <ReactFlow\n nodes={nodes}\n edges={edges}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n fitView\n fitViewOptions={{\n maxZoom: 0.85,\n }}\n >\n <Controls />\n <MiniMap pannable zoomable maskColor=\"#121212\" bgColor=\"#171717\" nodeColor=\"#2c2c2c\" />\n <Background variant={BackgroundVariant.Dots} gap={12} size={0.5} />\n </ReactFlow>\n </div>\n );\n}\n","import { Skeleton } from '@/components/ui/skeleton';\n\nimport { useLegacyWorkflow } from '@/hooks/use-workflows';\nimport '../../../index.css';\n\nimport { LegacyWorkflowGraphInner } from './legacy-workflow-graph-inner';\nimport { lodashTitleCase } from '@/lib/string';\nimport { AlertCircleIcon } from 'lucide-react';\nimport { LegacyWorkflowNestedGraphProvider } from '../context/legacy-workflow-nested-graph-context';\nimport { ReactFlowProvider } from '@xyflow/react';\n\nexport function LegacyWorkflowGraph({ workflowId }: { workflowId: string }) {\n const { legacyWorkflow, isLoading } = useLegacyWorkflow(workflowId);\n\n if (isLoading) {\n return (\n <div className=\"p-4\">\n <Skeleton className=\"h-[600px]\" />\n </div>\n );\n }\n\n if (!legacyWorkflow) {\n return (\n <div className=\"grid h-full place-items-center\">\n <div className=\"flex flex-col items-center gap-2\">\n <AlertCircleIcon />\n <div>We couldn't find {lodashTitleCase(workflowId)} workflow.</div>\n </div>\n </div>\n );\n }\n\n return (\n <LegacyWorkflowNestedGraphProvider>\n <ReactFlowProvider>\n <LegacyWorkflowGraphInner workflow={legacyWorkflow} />\n </ReactFlowProvider>\n </LegacyWorkflowNestedGraphProvider>\n );\n}\n","import React from 'react';\n\nexport const Form = React.forwardRef<HTMLFormElement, React.ComponentProps<'form'>>(({ children, ...props }, ref) => {\n return (\n <form ref={ref} className=\"space-y-4\" {...props}>\n {children}\n </form>\n );\n});\n","import React from 'react';\n\nimport { FieldWrapperProps } from '@autoform/react';\nimport { Txt } from '@/ds/components/Txt';\n\nconst DISABLED_LABELS = ['boolean', 'object', 'array'];\n\nexport const FieldWrapper: React.FC<FieldWrapperProps> = ({ label, children, id, field, error }) => {\n const isDisabled = DISABLED_LABELS.includes(field.type);\n\n return (\n <div className=\"pb-4 last:pb-0\">\n {!isDisabled && (\n <Txt as=\"label\" variant=\"ui-sm\" className=\"text-icon3 pb-1 block\" htmlFor={id}>\n {label}\n {field.required && <span className=\"text-accent2\"> *</span>}\n </Txt>\n )}\n\n {children}\n\n {field.fieldConfig?.description && (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-icon6\">\n {field.fieldConfig.description}\n </Txt>\n )}\n\n {error && (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-accent2\">\n {error}\n </Txt>\n )}\n </div>\n );\n};\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground',\n destructive: 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5 ref={ref} className={cn('mb-1 font-medium leading-none tracking-tight', className)} {...props} />\n ),\n);\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\n ),\n);\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import React from 'react';\nimport { AlertCircle } from 'lucide-react';\n\nimport { Alert, AlertTitle } from '@/components/ui/alert';\n\nexport const ErrorMessage: React.FC<{ error: string }> = ({ error }) => (\n <Alert variant=\"destructive\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>{error}</AlertTitle>\n </Alert>\n);\n","import React from 'react';\nimport { Button } from '@/components/ui/button';\n\nexport const SubmitButton: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n <Button type=\"submit\">{children}</Button>\n);\n","import { Input } from '@/components/ui/input';\nimport { AutoFormFieldProps } from '@autoform/react';\nimport React from 'react';\n\nexport const StringField: React.FC<AutoFormFieldProps> = ({ inputProps, error, field, id }) => {\n const { key, ...props } = inputProps;\n\n return <Input id={id} className={error ? 'border-destructive' : ''} {...props} defaultValue={field.default} />;\n};\n","import { Input } from '@/components/ui/input';\nimport { AutoFormFieldProps } from '@autoform/react';\nimport React, { useEffect } from 'react';\n\nexport const NumberField: React.FC<AutoFormFieldProps> = ({ inputProps, error, field, id }) => {\n const { key, ...props } = inputProps;\n\n useEffect(() => {\n if (field.default !== undefined) {\n props.onChange({\n target: { value: Number(field.default), name: inputProps.name },\n });\n }\n }, [field.default]);\n\n return (\n <Input\n id={id}\n type=\"number\"\n className={error ? 'border-destructive' : ''}\n {...props}\n defaultValue={field.default !== undefined ? Number(field.default) : undefined}\n onChange={e => {\n const value = e.target.value;\n if (value !== '' && !isNaN(Number(value))) {\n props.onChange({\n target: { value: value, name: inputProps.name },\n });\n }\n }}\n onBlur={e => {\n const value = e.target.value;\n if (value !== '' && !isNaN(Number(value))) {\n props.onChange({\n target: { value: Number(value), name: inputProps.name },\n });\n }\n }}\n />\n );\n};\n","import * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className={cn('flex items-center justify-center text-current')}>\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import React from 'react';\nimport { Checkbox } from '@/components/ui/checkbox';\nimport { AutoFormFieldProps } from '@autoform/react';\nimport { Txt } from '@/ds/components/Txt';\n\nexport const BooleanField: React.FC<AutoFormFieldProps> = ({ field, label, id, inputProps, value }) => (\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id={id}\n onCheckedChange={checked => {\n // react-hook-form expects an event object\n const event = {\n target: {\n name: inputProps.name,\n value: checked,\n },\n };\n inputProps.onChange(event);\n }}\n defaultChecked={field.default}\n disabled={inputProps.disabled || inputProps.readOnly}\n />\n <Txt as=\"label\" variant=\"ui-sm\" className=\"text-icon3\" htmlFor={id}>\n {label}\n {field.required && <span className=\"text-accent2\"> *</span>}\n </Txt>\n </div>\n);\n","'use client';\n\nimport { CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { DayPicker } from 'react-day-picker';\n\nimport { cn } from '../../lib/utils';\n\nimport { buttonVariants } from './button';\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn('p-3', className)}\n classNames={{\n months: 'flex flex-col space-y-4 sm:space-y-0',\n month: 'space-y-4',\n // month_caption: 'flex justify-center pt-1 relative items-center',\n caption_label: 'text-sm text-text font-medium',\n nav: 'space-x-1 flex items-center',\n nav_button_previous: cn(\n buttonVariants({ variant: 'outline' }),\n 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100',\n 'absolute left-4 top-[56px] z-10',\n ),\n nav_button_next: cn(\n buttonVariants({ variant: 'outline' }),\n 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100',\n 'absolute right-4 top-[56px] z-10',\n ),\n dropdown_month: 'w-full border-collapse space-y-1',\n weeknumber: 'flex',\n day: cn(\n buttonVariants({ variant: 'ghost' }),\n 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md',\n props.mode === 'range'\n ? '[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md'\n : '[&:has([aria-selected])]:rounded-md',\n 'h-8 w-8 p-0 hover:bg-lightGray-7/50 font-normal aria-selected:opacity-100',\n ),\n day_range_start: 'day-range-start',\n day_range_end: 'day-range-end',\n day_selected:\n '!bg-primary !text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\n day_today: 'bg-lightGray-7/50 text-accent-foreground',\n day_outside:\n 'day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30',\n day_disabled: 'text-muted-foreground opacity-50',\n day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground',\n day_hidden: 'invisible',\n ...classNames,\n }}\n components={\n {\n // IconDropdown: ({ }) => (\n // <CalendarIcon\n // className={cn('h-4 w-4', {\n // 'rotate-180': orientation === 'up',\n // 'rotate-90': orientation === 'left',\n // '-rotate-90': orientation === 'right',\n // })}\n // />\n // ),\n }\n }\n {...props}\n />\n );\n}\nCalendar.displayName = 'Calendar';\n\nexport { Calendar };\n","'use client';\n\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","'use client';\n\nimport { format, isValid } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { cn } from '../../lib/utils';\n\nimport { Button } from './button';\nimport { Calendar } from './calendar';\nimport { Input } from './input';\nimport { Popover, PopoverContent, PopoverTrigger } from './popover';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n setValue: (date: Date | undefined | null) => void;\n clearable?: boolean;\n};\n\nexport type DatePickerProps =\n | (CommonProps & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & { children: React.ReactNode; className?: never; placeholder?: string });\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n value,\n setValue,\n children,\n className,\n placeholder,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultButton\n value={value}\n placeholder={placeholder}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto p-0 bg-[#171717]\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DatePickerOnly\n value={value}\n setValue={v => setValue(v ? new Date(`${v}z`) : null)} // TODO: Leave in the Z to prevent casting via timezone\n clearable={props.clearable}\n setOpenPopover={setOpenPopover}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nexport const DatePickerOnly = ({\n value,\n setValue,\n setOpenPopover,\n clearable,\n placeholder,\n className,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [inputValue, setInputValue] = React.useState<string>(value ? format(value, 'PP') : '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n setValue?.(date);\n setOpenPopover?.(false);\n }\n }, 2000);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setInputValue(e.currentTarget.value);\n const date = new Date(e.target.value);\n debouncedDateUpdate(date);\n };\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n setValue?.(date);\n setOpenPopover?.(false);\n if (date) {\n setInputValue(format(date, 'PP'));\n } else {\n setInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n setInputValue(format(date, 'PP'));\n } else {\n setInputValue('');\n }\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className=\"relative mt-2 flex flex-col gap-2\"\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <div className=\"w-full px-3\">\n <Input\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n placeholder={placeholder}\n className={className}\n />\n </div>\n <Calendar\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n <div className=\"px-3 pb-2\">\n {clearable && (\n <Button\n variant=\"outline\"\n tabIndex={0}\n className=\"w-full !opacity-50 duration-200 hover:!opacity-100\"\n onClick={() => {\n setValue(null);\n setSelected(undefined);\n setInputValue('');\n setOpenPopover?.(false);\n }}\n >\n Clear\n </Button>\n )}\n </div>\n </div>\n );\n};\n\ninterface DefaultButtonProps {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n}\n\nconst DefaultButton = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, className, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n variant={'outline'}\n className={cn(\n 'bg-neutral-825 border-neutral-775 w-full justify-start whitespace-nowrap rounded-md border px-2 py-0 text-left flex items-center gap-1',\n className,\n )}\n {...props}\n >\n <CalendarIcon className=\"h-4 w-4\" />\n {value ? (\n <span className=\"text-white\">{format(value, 'PPP')}</span>\n ) : (\n <span className=\"text-gray\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n\nDefaultButton.displayName = 'DefaultButton';\n","import { AutoFormFieldProps } from '@autoform/react';\nimport React, { useState, useEffect } from 'react';\nimport { DatePicker } from '../../date-picker';\nimport { isValid } from 'date-fns';\n\nexport const DateField: React.FC<AutoFormFieldProps> = ({ inputProps, field, error, id }) => {\n const { key, ...props } = inputProps;\n const [value, setValue] = useState<Date | null>(null);\n\n useEffect(() => {\n if (field.default) {\n const date = new Date(field.default);\n if (isValid(date)) {\n setValue(date);\n }\n }\n }, [field]);\n\n return (\n <DatePicker\n id={id}\n className={error ? 'border-destructive' : ''}\n value={value}\n setValue={date => {\n const newDate = date ? new Date(date).toISOString() : date;\n if (newDate) {\n props.onChange({\n target: { value: newDate?.toString(), name: inputProps.name },\n });\n setValue(new Date(newDate));\n }\n }}\n clearable={true}\n />\n );\n};\n","'use client';\n\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n {...props}\n >\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-mastra-el-5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n","import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';\nimport { AutoFormFieldProps } from '@autoform/react';\nimport React from 'react';\n\nexport const SelectField: React.FC<AutoFormFieldProps> = ({ field, inputProps, error, id, value }) => {\n const { key, ...props } = inputProps;\n\n return (\n <Select\n {...props}\n onValueChange={value => {\n const syntheticEvent = {\n target: {\n value,\n name: inputProps.name,\n },\n } as React.ChangeEvent<HTMLInputElement>;\n props.onChange(syntheticEvent);\n }}\n defaultValue={field.default}\n >\n <SelectTrigger id={id} className={error ? 'border-destructive' : ''}>\n <SelectValue placeholder=\"Select an option\" />\n </SelectTrigger>\n <SelectContent>\n {(field.options || []).map(([key, label]) => (\n <SelectItem key={key} value={key}>\n {label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n );\n};\n","import React from 'react';\nimport { ObjectWrapperProps } from '@autoform/react';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons';\nimport { Braces } from 'lucide-react';\n\nexport const ObjectWrapper: React.FC<ObjectWrapperProps> = ({ label, children }) => {\n const hasLabel = label !== '\\u200B' && label !== '';\n\n return (\n <div className=\"\">\n {hasLabel && (\n <Txt as=\"h3\" variant=\"ui-sm\" className=\"text-icon3 flex items-center gap-1 pb-2\">\n <Icon size=\"sm\">\n <Braces />\n </Icon>\n\n {label}\n </Txt>\n )}\n\n <div\n className={\n hasLabel ? 'flex flex-col gap-1 [&>*]:border-dashed [&>*]:border-l [&>*]:border-l-border1 [&>*]:pl-4' : ''\n }\n >\n {children}\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nimport { Brackets, PlusIcon } from 'lucide-react';\nimport { ArrayWrapperProps } from '@autoform/react';\nimport { Txt } from '@/ds/components/Txt';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../tooltip';\nimport { Icon } from '@/ds/icons';\n\nexport const ArrayWrapper: React.FC<ArrayWrapperProps> = ({ label, children, onAddItem }) => {\n return (\n <div>\n <div className=\"flex gap-2 justify-between\">\n <Txt as=\"h3\" variant=\"ui-sm\" className=\"text-icon3 pb-2 flex items-center gap-1\">\n <Icon size=\"sm\">\n <Brackets />\n </Icon>\n\n {label}\n </Txt>\n\n <TooltipProvider>\n <Tooltip delayDuration={0}>\n <TooltipTrigger asChild>\n <button\n onClick={onAddItem}\n type=\"button\"\n className=\"text-icon3 bg-surface3 rounded-md p-1 hover:bg-surface4 hover:text-icon6 h-icon-sm w-icon-sm\"\n >\n <Icon size=\"sm\">\n <PlusIcon />\n </Icon>\n </button>\n </TooltipTrigger>\n <TooltipContent>Add item</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </div>\n\n <div className=\"flex flex-col gap-1\">{children}</div>\n </div>\n );\n};\n","import React from 'react';\nimport { TrashIcon } from 'lucide-react';\nimport { ArrayElementWrapperProps } from '@autoform/react';\nimport { Icon } from '@/ds/icons';\nimport { Button } from '@/ds/components/Button';\n\nexport const ArrayElementWrapper: React.FC<ArrayElementWrapperProps> = ({ children, onRemove }) => {\n return (\n <div className=\"pl-4 border-l border-border1\">\n {children}\n <Button onClick={onRemove} type=\"button\">\n <Icon size=\"sm\">\n <TrashIcon />\n </Icon>\n Delete\n </Button>\n </div>\n );\n};\n","import { AutoFormFieldProps } from '@autoform/react';\nimport { v4 as uuid } from '@lukeed/uuid';\nimport { Plus, TrashIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '../../button';\nimport { Input } from '../../input';\n\ninterface KeyValuePair {\n id: string;\n key: string;\n value: string;\n}\n\nexport const RecordField: React.FC<AutoFormFieldProps> = ({ inputProps, field, error, id }) => {\n const { key, onChange, ...props } = inputProps;\n const [pairs, setPairs] = React.useState<KeyValuePair[]>(() =>\n Object.entries(field.default || {}).map(([key, val]) => ({\n id: key || uuid(),\n key,\n value: val as string,\n })),\n );\n\n React.useEffect(() => {\n if (pairs.length === 0) {\n setPairs([{ id: uuid(), key: '', value: '' }]);\n }\n }, [pairs]);\n\n const updateForm = React.useCallback(\n (newPairs: KeyValuePair[]) => {\n const newValue = newPairs.reduce(\n (acc, pair) => {\n if (pair.key) {\n acc[pair.key] = pair.value;\n }\n return acc;\n },\n {} as Record<string, string>,\n );\n\n onChange?.({\n target: { value: newValue, name: inputProps.name },\n });\n },\n [onChange, inputProps.name],\n );\n\n const handleChange = (id: string, field: 'key' | 'value', newValue: string) => {\n setPairs(prev => prev.map(pair => (pair.id === id ? { ...pair, [field]: newValue } : pair)));\n };\n\n const handleBlur = () => {\n updateForm(pairs);\n };\n\n const addPair = () => {\n const newPairs = [...pairs, { id: uuid(), key: '', value: '' }];\n setPairs(newPairs);\n updateForm(newPairs);\n };\n\n const removePair = (id: string) => {\n const newPairs = pairs.filter(p => p.id !== id);\n if (newPairs.length === 0) {\n newPairs.push({ id: uuid(), key: '', value: '' });\n }\n setPairs(newPairs);\n updateForm(newPairs);\n };\n\n return (\n <div className=\"space-y-3\">\n {pairs.map(pair => (\n <div key={pair.id} className=\"relative space-y-2 rounded-lg border p-4\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute right-2 top-2\"\n onClick={() => removePair(pair.id)}\n >\n <TrashIcon className=\"h-4 w-4\" />\n </Button>\n\n <div className=\"space-y-2 pt-6\">\n <Input\n placeholder=\"Key\"\n value={pair.key}\n onChange={e => handleChange(pair.id, 'key', e.target.value)}\n onBlur={handleBlur}\n />\n <Input\n placeholder=\"Value\"\n value={pair.value}\n onChange={e => handleChange(pair.id, 'value', e.target.value)}\n onBlur={handleBlur}\n />\n </div>\n </div>\n ))}\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"w-full\" onClick={addPair}>\n <Plus className=\"mr-2 h-4 w-4\" />\n Add Key-Value Pair\n </Button>\n </div>\n );\n};\n","import React from 'react';\nimport { AutoForm as BaseAutoForm, AutoFormUIComponents } from '@autoform/react';\nimport { AutoFormProps } from './types';\nimport { Form } from './components/Form';\nimport { FieldWrapper } from './components/FieldWrapper';\nimport { ErrorMessage } from './components/ErrorMessage';\nimport { SubmitButton } from './components/SubmitButton';\nimport { StringField } from './components/StringField';\nimport { NumberField } from './components/NumberField';\nimport { BooleanField } from './components/BooleanField';\nimport { DateField } from './components/DateField';\nimport { SelectField } from './components/SelectField';\nimport { ObjectWrapper } from './components/ObjectWrapper';\nimport { ArrayWrapper } from './components/ArrayWrapper';\nimport { ArrayElementWrapper } from './components/ArrayElementWrapper';\nimport { RecordField } from './components/RecordField';\n\nconst ShadcnUIComponents: AutoFormUIComponents = {\n Form,\n FieldWrapper,\n ErrorMessage,\n SubmitButton,\n ObjectWrapper,\n ArrayWrapper,\n ArrayElementWrapper,\n};\n\nexport const ShadcnAutoFormFieldComponents = {\n string: StringField,\n number: NumberField,\n boolean: BooleanField,\n date: DateField,\n select: SelectField,\n record: RecordField,\n};\nexport type FieldTypes = keyof typeof ShadcnAutoFormFieldComponents;\n\nexport function AutoForm<T extends Record<string, any>>({\n uiComponents,\n formComponents,\n readOnly,\n ...props\n}: AutoFormProps<T> & { readOnly?: boolean }) {\n return (\n <BaseAutoForm\n {...props}\n uiComponents={{ ...ShadcnUIComponents, ...uiComponents }}\n formComponents={{\n string: props => <StringField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n number: props => <NumberField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n boolean: props => <BooleanField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n date: props => <DateField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n select: props => <SelectField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n record: props => <RecordField {...props} inputProps={{ ...props.inputProps, readOnly }} />,\n ...formComponents,\n }}\n />\n );\n}\n","import { buildZodFieldConfig } from '@autoform/react';\nimport { FieldTypes } from './AutoForm';\n\nexport const fieldConfig = buildZodFieldConfig<\n FieldTypes,\n {\n // Add types for `customData` here.\n }\n>();\n","import { FieldConfig } from '@autoform/core';\nimport { z } from 'zod';\n\nexport function inferFieldType(schema: z.ZodTypeAny, fieldConfig?: FieldConfig): string {\n if (fieldConfig?.fieldType) {\n return fieldConfig.fieldType;\n }\n\n if (schema instanceof z.ZodObject) return 'object';\n if (schema instanceof z.ZodNumber) return 'number';\n if (schema instanceof z.ZodBoolean) return 'boolean';\n if (schema instanceof z.ZodDate || (schema as any)?.isDatetime || (schema as any)?.isDate) return 'date';\n if (schema instanceof z.ZodString) return 'string';\n if (schema instanceof z.ZodEnum) return 'select';\n if (schema instanceof z.ZodNativeEnum) return 'select';\n if (schema instanceof z.ZodArray) return 'array';\n if (schema instanceof z.ZodRecord) return 'record';\n\n return 'string'; // Default to string for unknown types\n}\n","import { ParsedField, ParsedSchema } from '@autoform/core';\nimport { getDefaultValueInZodStack, getFieldConfigInZodStack, ZodObjectOrWrapped, ZodProvider } from '@autoform/zod';\nimport { z } from 'zod';\nimport { inferFieldType } from './field-type-inference';\n\nfunction parseField(key: string, schema: z.ZodTypeAny): ParsedField {\n const baseSchema = getBaseSchema(schema);\n const fieldConfig = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldConfig);\n const defaultValue = getDefaultValueInZodStack(schema);\n\n // Enums\n const options = baseSchema._def?.values;\n let optionValues: [string, string][] = [];\n if (options) {\n if (!Array.isArray(options)) {\n optionValues = Object.entries(options);\n } else {\n optionValues = options.map(value => [value, value]);\n }\n }\n\n // Arrays and objects\n let subSchema: ParsedField[] = [];\n if (baseSchema instanceof z.ZodObject) {\n subSchema = Object.entries(baseSchema.shape).map(([key, field]) => parseField(key, field as z.ZodTypeAny));\n }\n if (baseSchema instanceof z.ZodArray) {\n subSchema = [parseField('0', baseSchema._def.type)];\n }\n\n return {\n key,\n type,\n required: !schema.isOptional(),\n default: defaultValue,\n description: baseSchema.description,\n fieldConfig,\n options: optionValues,\n schema: subSchema,\n };\n}\n\nfunction getBaseSchema<ChildType extends z.ZodAny | z.ZodTypeAny | z.AnyZodObject = z.ZodAny>(\n schema: ChildType | z.ZodEffects<ChildType>,\n): ChildType {\n if ('innerType' in schema._def) {\n return getBaseSchema(schema._def.innerType as ChildType);\n }\n if ('schema' in schema._def) {\n return getBaseSchema(schema._def.schema as ChildType);\n }\n return schema as ChildType;\n}\n\nexport function parseSchema(schema: ZodObjectOrWrapped): ParsedSchema {\n const objectSchema = schema instanceof z.ZodEffects ? schema.innerType() : schema;\n const shape = objectSchema.shape;\n\n const fields: ParsedField[] = Object.entries(shape).map(([key, field]) => parseField(key, field as z.ZodTypeAny));\n\n return { fields };\n}\n\nexport class CustomZodProvider<T extends ZodObjectOrWrapped> extends ZodProvider<T> {\n private _schema: T;\n constructor(schema: T) {\n super(schema);\n this._schema = schema;\n }\n\n parseSchema(): ParsedSchema {\n return parseSchema(this._schema);\n }\n}\n","'use client';\n\nimport { Loader2 } from 'lucide-react';\nimport { Button } from '../../ds/components/Button';\nimport { ScrollArea } from '../ui/scroll-area';\nimport { AutoForm, CustomZodProvider } from '@/components/ui/autoform';\nimport type { ExtendableAutoFormProps } from '@autoform/react';\nimport z, { ZodObject } from 'zod';\nimport { Label } from '../ui/label';\nimport { Icon } from '@/ds/icons';\n\ninterface DynamicFormProps<T extends z.ZodSchema> {\n schema: T;\n onSubmit?: (values: z.infer<T>) => void | Promise<void>;\n defaultValues?: z.infer<T>;\n isSubmitLoading?: boolean;\n submitButtonLabel?: string;\n className?: string;\n readOnly?: boolean;\n}\n\nfunction isEmptyZodObject(schema: unknown): boolean {\n if (schema instanceof ZodObject) {\n return Object.keys(schema.shape).length === 0;\n }\n return false;\n}\n\nexport function DynamicForm<T extends z.ZodSchema>({\n schema,\n onSubmit,\n defaultValues,\n isSubmitLoading,\n submitButtonLabel,\n className,\n readOnly,\n}: DynamicFormProps<T>) {\n const isNotZodObject = !(schema instanceof ZodObject);\n if (!schema) {\n console.error('no form schema found');\n return null;\n }\n\n const normalizedSchema = (schema: z.ZodSchema) => {\n if (isEmptyZodObject(schema)) {\n return z.object({});\n }\n if (isNotZodObject) {\n // using a non-printable character to avoid conflicts with the form data\n return z.object({\n '\\u200B': schema,\n });\n }\n return schema;\n };\n\n const schemaProvider = new CustomZodProvider(normalizedSchema(schema) as any);\n\n const formProps: ExtendableAutoFormProps<z.infer<T>> = {\n schema: schemaProvider,\n onSubmit: async values => {\n await onSubmit?.(isNotZodObject ? values['\\u200B'] || {} : values);\n },\n defaultValues: isNotZodObject ? (defaultValues ? { '\\u200B': defaultValues } : undefined) : defaultValues,\n formProps: {\n className: '',\n },\n uiComponents: {\n SubmitButton: ({ children }) =>\n onSubmit ? (\n <Button variant=\"light\" className=\"w-full\" size=\"lg\" disabled={isSubmitLoading}>\n {isSubmitLoading ? (\n <Icon>\n <Loader2 className=\"animate-spin\" />\n </Icon>\n ) : (\n submitButtonLabel || children\n )}\n </Button>\n ) : null,\n },\n formComponents: {\n Label: ({ value }) => <Label className=\"text-sm font-normal\">{value}</Label>,\n },\n withSubmit: true,\n };\n\n return <AutoForm {...formProps} readOnly={readOnly} />;\n}\n","import { z } from 'zod';\n\n/**\n * Resolve serialized zod output - This function takes the string output ot the `jsonSchemaToZod` function\n * and instantiates the zod object correctly.\n *\n * @param obj - serialized zod object\n * @returns resolved zod object\n */\nexport function resolveSerializedZodOutput(obj: any) {\n return Function('z', `\"use strict\";return (${obj});`)(z);\n}\n","import { themes } from 'prism-react-renderer';\nimport { CodeBlock } from 'react-code-block';\n\nimport { cn } from '../../lib/utils';\n\nfunction CodeBlockDemo({\n code = '',\n language = 'ts',\n filename,\n className,\n}: {\n code?: string;\n language: 'ts' | 'json';\n filename?: string;\n className?: string;\n}) {\n return (\n <CodeBlock code={code} language={language} theme={themes.oneDark}>\n {filename ? (\n <div className=\"absolute w-full px-6 py-2 pl-4 text-sm rounded bg-mastra-bg-2 text-mastra-el-6/50\">\n {filename}\n </div>\n ) : null}\n\n <CodeBlock.Code\n className={cn('bg-transparent h-full p-6 rounded-xl whitespace-pre-wrap', filename ? 'pt-10' : '', className)}\n >\n <div className=\"table-row\">\n <div className=\"flex items-center\">\n <CodeBlock.LineNumber className=\"table-cell pr-4 text-sm text-right select-none text-gray-500/50\" />\n <CodeBlock.LineContent className=\"flex\">\n <CodeBlock.Token className=\"font-mono text-sm mastra-token\" />\n </CodeBlock.LineContent>\n </div>\n </div>\n </CodeBlock.Code>\n </CodeBlock>\n );\n}\n\nexport { CodeBlockDemo };\n","import { Icon } from '@/ds/icons';\nimport { cn } from '@/lib/utils';\nimport { ChevronDownIcon } from 'lucide-react';\nimport { useState } from 'react';\n\nexport interface WorkflowCardProps {\n header: React.ReactNode;\n children?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nexport const WorkflowCard = ({ header, children, footer }: WorkflowCardProps) => {\n const [expanded, setExpanded] = useState(false);\n return (\n <div className=\"rounded-lg border-sm border-border1 bg-surface4\">\n <button className=\"py-1 px-2 flex items-center gap-3 justify-between w-full\" onClick={() => setExpanded(s => !s)}>\n <div className=\"w-full\">{header}</div>\n <Icon>\n <ChevronDownIcon className={cn('text-icon3 transition-transform -rotate-90', expanded && 'rotate-0')} />\n </Icon>\n </button>\n {children && expanded && <div className=\"border-t-sm border-border1\">{children}</div>}\n {footer && <div className=\"py-1 px-2 border-t-sm border-border1\">{footer}</div>}\n </div>\n );\n};\n","import { Txt } from '@/ds/components/Txt';\nimport { CheckIcon, CrossIcon, Icon } from '@/ds/icons';\nimport { Loader2 } from 'lucide-react';\nimport { WorkflowCard } from './workflow-card';\n\nexport interface LegacyWorkflowStatusProps {\n stepId: string;\n pathStatus: string;\n path: string;\n}\n\nexport const LegacyWorkflowStatus = ({ stepId, pathStatus, path }: LegacyWorkflowStatusProps) => {\n const status =\n pathStatus === 'completed'\n ? 'Completed'\n : stepId === path\n ? pathStatus.charAt(0).toUpperCase() + pathStatus.slice(1)\n : pathStatus === 'executing'\n ? 'Executing'\n : 'Completed';\n\n return (\n <WorkflowCard\n header={\n <div className=\"flex items-center gap-3\">\n <Icon>\n {status === 'Completed' && <CheckIcon className=\"text-accent1\" />}\n {status === 'Failed' && <CrossIcon className=\"text-accent2\" />}\n {status === 'Executing' && <Loader2 className=\"text-icon3 animate-spin\" />}\n </Icon>\n <Txt as=\"span\" variant=\"ui-lg\" className=\"text-icon6 font-medium\">\n {path}\n </Txt>\n </div>\n }\n />\n );\n};\n","import { Txt } from '@/ds/components/Txt';\nimport { WorkflowCard } from './workflow-card';\nimport { DeploymentIcon, Icon } from '@/ds/icons';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { CopyIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { CodeBlockDemo } from '@/components/ui/code-block';\n\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nexport interface WorkflowResultProps {\n jsonResult: string;\n sanitizedJsonResult?: string | null;\n}\n\nexport const WorkflowResult = ({ jsonResult, sanitizedJsonResult }: WorkflowResultProps) => {\n const { handleCopy } = useCopyToClipboard({ text: jsonResult });\n const [expanded, setExpanded] = useState(false);\n\n return (\n <WorkflowCard\n header={\n <div className=\"flex items-center gap-2 justify-between w-full\">\n <Txt variant=\"ui-lg\" className=\"text-icon6 flex items-center gap-3 font-medium\">\n <Icon>\n <DeploymentIcon />\n </Icon>\n Workflow Execution (JSON)\n </Txt>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n className=\"p-2 rounded-lg hover:bg-surface5 transition-colors duration-150 ease-in-out text-icon3 hover:text-icon6\"\n onClick={() => handleCopy()}\n >\n <Icon size=\"sm\">\n <CopyIcon />\n </Icon>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy result</TooltipContent>\n </Tooltip>\n </div>\n }\n footer={\n <button\n className=\"w-full h-full text-center text-icon2 hover:text-icon6 text-ui-md\"\n onClick={() => setExpanded(s => !s)}\n >\n {expanded ? 'collapse' : 'expand'}\n </button>\n }\n children={\n expanded ? (\n <CodeBlockDemo className=\"w-full overflow-x-auto\" code={sanitizedJsonResult || jsonResult} language=\"json\" />\n ) : null\n }\n />\n );\n};\n","import jsonSchemaToZod from 'json-schema-to-zod';\nimport { Loader2 } from 'lucide-react';\nimport { useState, useEffect, useContext } from 'react';\nimport { parse } from 'superjson';\nimport { z } from 'zod';\n\nimport { DynamicForm } from '@/components/dynamic-form';\nimport { resolveSerializedZodOutput } from '@/components/dynamic-form/utils';\nimport { Button } from '@/ds/components/Button';\nimport { CodeBlockDemo } from '@/components/ui/code-block';\n\nimport { ScrollArea } from '@/components/ui/scroll-area';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Text } from '@/components/ui/text';\n\nimport { useExecuteWorkflow, useWatchWorkflow, useResumeWorkflow, useLegacyWorkflow } from '@/hooks/use-workflows';\nimport { WorkflowRunContext } from '../context/workflow-run-context';\nimport { toast } from 'sonner';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons';\nimport { LegacyWorkflowStatus } from './legacy-workflow-status';\n\nimport { WorkflowResult } from './workflow-result';\n\ninterface SuspendedStep {\n stepId: string;\n runId: string;\n suspendPayload: any;\n}\n\nexport function LegacyWorkflowTrigger({\n workflowId,\n setRunId,\n}: {\n workflowId: string;\n setRunId?: (runId: string) => void;\n}) {\n const { legacyResult: result, setLegacyResult: setResult, payload, setPayload } = useContext(WorkflowRunContext);\n const { isLoading, legacyWorkflow: workflow } = useLegacyWorkflow(workflowId);\n const { createLegacyWorkflowRun: createWorkflowRun, startLegacyWorkflowRun: startWorkflowRun } = useExecuteWorkflow();\n const {\n watchLegacyWorkflow: watchWorkflow,\n legacyWatchResult: watchResult,\n isWatchingLegacyWorkflow: isWatchingWorkflow,\n } = useWatchWorkflow();\n const { resumeLegacyWorkflow: resumeWorkflow, isResumingLegacyWorkflow: isResumingWorkflow } = useResumeWorkflow();\n const [suspendedSteps, setSuspendedSteps] = useState<SuspendedStep[]>([]);\n const [isRunning, setIsRunning] = useState(false);\n const triggerSchema = workflow?.triggerSchema;\n\n const handleExecuteWorkflow = async (data: any) => {\n try {\n if (!workflow) return;\n setIsRunning(true);\n\n setResult(null);\n\n const { runId } = await createWorkflowRun({ workflowId });\n\n setRunId?.(runId);\n\n watchWorkflow({ workflowId, runId });\n\n startWorkflowRun({ workflowId, runId, input: data });\n } catch (err) {\n setIsRunning(false);\n toast.error('Error executing workflow');\n }\n };\n\n const handleResumeWorkflow = async (step: SuspendedStep & { context: any }) => {\n if (!workflow) return;\n\n const { stepId, runId: prevRunId, context } = step;\n\n const { runId } = await createWorkflowRun({ workflowId, prevRunId });\n\n watchWorkflow({ workflowId, runId });\n\n await resumeWorkflow({\n stepId,\n runId,\n context,\n workflowId,\n });\n };\n\n const watchResultToUse = result ?? watchResult;\n\n const workflowActivePaths = watchResultToUse?.activePaths ?? {};\n\n useEffect(() => {\n setIsRunning(isWatchingWorkflow);\n }, [isWatchingWorkflow]);\n\n useEffect(() => {\n if (!watchResultToUse?.activePaths || !result?.runId) return;\n\n const suspended = Object.entries(watchResultToUse.activePaths)\n .filter(([_, { status }]) => status === 'suspended')\n .map(([stepId, { suspendPayload }]) => ({\n stepId,\n runId: result.runId,\n suspendPayload,\n }));\n setSuspendedSteps(suspended);\n }, [watchResultToUse, result]);\n\n useEffect(() => {\n if (watchResult) {\n setResult(watchResult);\n }\n }, [watchResult]);\n\n if (isLoading) {\n return (\n <ScrollArea className=\"h-[calc(100vh-126px)] pt-2 px-4 pb-4 text-xs\">\n <div className=\"space-y-4\">\n <Skeleton className=\"h-10\" />\n <Skeleton className=\"h-10\" />\n </div>\n </ScrollArea>\n );\n }\n\n if (!workflow) return null;\n\n const isSuspendedSteps = suspendedSteps.length > 0;\n\n const zodInputSchema = triggerSchema ? resolveSerializedZodOutput(jsonSchemaToZod(parse(triggerSchema))) : null;\n\n const { sanitizedOutput, ...restResult } = result ?? {};\n\n const hasWorkflowActivePaths = Object.values(workflowActivePaths).length > 0;\n\n return (\n <div className=\"h-full px-5 pt-3 pb-12\">\n <div className=\"space-y-4\">\n {isResumingWorkflow && (\n <div className=\"py-2 px-5 flex items-center gap-2 bg-surface5 -mx-5 -mt-5 border-b-sm border-border1\">\n <Icon>\n <Loader2 className=\"animate-spin text-icon6\" />\n </Icon>\n <Txt>Resuming workflow</Txt>\n </div>\n )}\n\n {!isSuspendedSteps && (\n <>\n {zodInputSchema ? (\n <DynamicForm\n schema={zodInputSchema}\n defaultValues={payload}\n isSubmitLoading={isWatchingWorkflow}\n submitButtonLabel=\"Run\"\n onSubmit={data => {\n setPayload(data);\n handleExecuteWorkflow(data);\n }}\n />\n ) : (\n <Button\n className=\"w-full\"\n variant=\"light\"\n disabled={isRunning}\n onClick={() => handleExecuteWorkflow(null)}\n >\n {isRunning ? (\n <Icon>\n <Loader2 className=\"animate-spin\" />\n </Icon>\n ) : (\n 'Trigger'\n )}\n </Button>\n )}\n </>\n )}\n\n {isSuspendedSteps &&\n suspendedSteps?.map(step => {\n const stepDefinition = workflow.steps[step.stepId];\n const stepSchema = stepDefinition?.inputSchema\n ? resolveSerializedZodOutput(jsonSchemaToZod(parse(stepDefinition.inputSchema)))\n : z.record(z.string(), z.any());\n return (\n <div className=\"flex flex-col px-4\">\n <Text variant=\"secondary\" className=\"text-mastra-el-3\" size=\"xs\">\n {step.stepId}\n </Text>\n {step.suspendPayload && (\n <div>\n <CodeBlockDemo\n className=\"w-full overflow-x-auto p-2\"\n code={JSON.stringify(step.suspendPayload, null, 2)}\n language=\"json\"\n />\n </div>\n )}\n <DynamicForm\n schema={stepSchema}\n isSubmitLoading={isResumingWorkflow}\n submitButtonLabel=\"Resume\"\n onSubmit={data => {\n handleResumeWorkflow({\n stepId: step.stepId,\n runId: step.runId,\n suspendPayload: step.suspendPayload,\n context: data,\n });\n }}\n />\n </div>\n );\n })}\n\n {hasWorkflowActivePaths && (\n <>\n <hr className=\"border-border1 border-sm my-5\" />\n <div className=\"flex flex-col gap-4\">\n {Object.entries(workflowActivePaths)?.map(([stepId, { status: pathStatus, stepPath }]) => {\n return (\n <div className=\"flex flex-col gap-1\" key={stepId}>\n {stepPath?.map((path, idx) => {\n return <LegacyWorkflowStatus stepId={stepId} pathStatus={pathStatus} path={path} key={idx} />;\n })}\n </div>\n );\n })}\n </div>\n </>\n )}\n\n {result && (\n <>\n <hr className=\"border-border1 border-sm my-5\" />\n <WorkflowResult sanitizedJsonResult={sanitizedOutput} jsonResult={JSON.stringify(restResult, null, 2)} />\n </>\n )}\n </div>\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { CheckIcon, CrossIcon, Icon } from '@/ds/icons';\nimport { CirclePause, HourglassIcon, Loader2 } from 'lucide-react';\nimport { WorkflowCard } from './workflow-card';\nimport { SyntaxHighlighter } from '@/components/syntax-highlighter';\nimport { CopyButton } from '@/components/ui/copy-button';\n\nexport interface WorkflowStatusProps {\n stepId: string;\n status: string;\n result: Record<string, unknown>;\n}\n\nexport const WorkflowStatus = ({ stepId, status, result }: WorkflowStatusProps) => {\n return (\n <WorkflowCard\n header={\n <div className=\"flex items-center gap-3\">\n <Icon>\n {status === 'success' && <CheckIcon className=\"text-accent1\" />}\n {status === 'failed' && <CrossIcon className=\"text-accent2\" />}\n {status === 'suspended' && <CirclePause className=\"text-accent3\" />}\n {status === 'waiting' && <HourglassIcon className=\"text-accent5\" />}\n {status === 'running' && <Loader2 className=\"text-icon3 animate-spin\" />}\n </Icon>\n <Txt as=\"span\" variant=\"ui-lg\" className=\"text-icon6 font-medium\">\n {stepId.charAt(0).toUpperCase() + stepId.slice(1)}\n </Txt>\n </div>\n }\n >\n <div className=\"rounded-md bg-surface4 p-1 font-mono relative\">\n <CopyButton content={JSON.stringify(result, null, 2)} className=\"absolute top-2 right-2 z-10\" />\n <SyntaxHighlighter data={result} />\n </div>\n </WorkflowCard>\n );\n};\n","import jsonSchemaToZod from 'json-schema-to-zod';\nimport { Braces, Footprints, Loader2 } from 'lucide-react';\nimport { useState, useEffect, useContext, useId } from 'react';\nimport { parse } from 'superjson';\nimport { z } from 'zod';\n\nimport { DynamicForm } from '@/components/dynamic-form';\nimport { resolveSerializedZodOutput } from '@/components/dynamic-form/utils';\nimport { Button } from '@/ds/components/Button';\nimport { CodeBlockDemo } from '@/components/ui/code-block';\nimport { ScrollArea } from '@/components/ui/scroll-area';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Text } from '@/components/ui/text';\n\nimport { WorkflowRunContext } from '../context/workflow-run-context';\nimport { toast } from 'sonner';\nimport { usePlaygroundStore } from '@/store/playground-store';\nimport { Icon } from '@/ds/icons';\nimport { Txt } from '@/ds/components/Txt';\n\nimport { GetWorkflowResponse, WorkflowWatchResult } from '@mastra/client-js';\nimport { SyntaxHighlighter } from '@/components/ui/syntax-highlighter';\nimport { Input } from '@/components/ui/input';\nimport { Dialog, DialogPortal, DialogTitle, DialogContent } from '@/components/ui/dialog';\nimport { WorkflowStatus } from './workflow-status';\n\ninterface SuspendedStep {\n stepId: string;\n runId: string;\n suspendPayload: any;\n workflow?: GetWorkflowResponse;\n isLoading: boolean;\n}\n\ninterface WorkflowTriggerProps {\n workflowId: string;\n setRunId?: (runId: string) => void;\n workflow?: GetWorkflowResponse;\n isLoading?: boolean;\n createWorkflowRun: ({ workflowId, prevRunId }: { workflowId: string; prevRunId?: string }) => Promise<{\n runId: string;\n }>;\n isStreamingWorkflow: boolean;\n streamWorkflow: ({\n workflowId,\n runId,\n inputData,\n runtimeContext,\n }: {\n workflowId: string;\n runId: string;\n inputData: Record<string, unknown>;\n runtimeContext: Record<string, unknown>;\n }) => Promise<void>;\n resumeWorkflow: ({\n workflowId,\n step,\n runId,\n resumeData,\n runtimeContext,\n }: {\n workflowId: string;\n step: string | string[];\n runId: string;\n resumeData: Record<string, unknown>;\n runtimeContext: Record<string, unknown>;\n }) => Promise<{\n message: string;\n }>;\n streamResult: WorkflowWatchResult | null;\n isResumingWorkflow: boolean;\n isCancellingWorkflowRun: boolean;\n cancelWorkflowRun: ({ workflowId, runId }: { workflowId: string; runId: string }) => Promise<{\n message: string;\n }>;\n}\n\nexport function WorkflowTrigger({\n workflowId,\n setRunId,\n workflow,\n isLoading,\n createWorkflowRun,\n resumeWorkflow,\n streamWorkflow,\n isStreamingWorkflow,\n streamResult,\n isResumingWorkflow,\n isCancellingWorkflowRun,\n cancelWorkflowRun,\n}: WorkflowTriggerProps) {\n const { runtimeContext } = usePlaygroundStore();\n const { result, setResult, payload, setPayload } = useContext(WorkflowRunContext);\n\n const [suspendedSteps, setSuspendedSteps] = useState<SuspendedStep[]>([]);\n const [isRunning, setIsRunning] = useState(false);\n const [innerRunId, setInnerRunId] = useState<string>('');\n const [cancelResponse, setCancelResponse] = useState<{ message: string } | null>(null);\n const triggerSchema = workflow?.inputSchema;\n\n const handleExecuteWorkflow = async (data: any) => {\n try {\n if (!workflow) return;\n setIsRunning(true);\n\n setCancelResponse(null);\n\n setResult(null);\n\n const { runId } = await createWorkflowRun({ workflowId });\n\n setRunId?.(runId);\n setInnerRunId(runId);\n\n streamWorkflow({ workflowId, runId, inputData: data, runtimeContext });\n } catch (err) {\n setIsRunning(false);\n toast.error('Error executing workflow');\n }\n };\n\n const handleResumeWorkflow = async (\n step: Omit<SuspendedStep, 'stepId'> & { resumeData: any; stepId: string | string[] },\n ) => {\n if (!workflow) return;\n\n setCancelResponse(null);\n const { stepId, runId: prevRunId, resumeData } = step;\n\n const { runId } = await createWorkflowRun({ workflowId, prevRunId });\n\n await resumeWorkflow({\n step: stepId,\n runId,\n resumeData,\n workflowId,\n runtimeContext,\n });\n };\n\n const handleCancelWorkflowRun = async () => {\n const response = await cancelWorkflowRun({ workflowId, runId: innerRunId });\n setCancelResponse(response);\n };\n\n const streamResultToUse = result ?? streamResult;\n\n useEffect(() => {\n setIsRunning(isStreamingWorkflow);\n }, [isStreamingWorkflow]);\n\n useEffect(() => {\n if (!streamResultToUse?.payload?.workflowState?.steps || !result?.runId) return;\n\n const suspended = Object.entries(streamResultToUse.payload.workflowState.steps)\n .filter(([_, { status }]) => status === 'suspended')\n .map(([stepId, { payload }]) => ({\n stepId,\n runId: result.runId,\n suspendPayload: payload,\n isLoading: false,\n }));\n setSuspendedSteps(suspended);\n }, [streamResultToUse, result]);\n\n useEffect(() => {\n if (streamResult) {\n setResult(streamResult);\n }\n }, [streamResult]);\n\n if (isLoading) {\n return (\n <ScrollArea className=\"h-[calc(100vh-126px)] pt-2 px-4 pb-4 text-xs\">\n <div className=\"space-y-4\">\n <Skeleton className=\"h-10\" />\n <Skeleton className=\"h-10\" />\n </div>\n </ScrollArea>\n );\n }\n\n if (!workflow) return null;\n\n const isSuspendedSteps = suspendedSteps.length > 0;\n\n const zodInputSchema = triggerSchema ? resolveSerializedZodOutput(jsonSchemaToZod(parse(triggerSchema))) : null;\n\n const workflowActivePaths = streamResultToUse?.payload?.workflowState?.steps ?? {};\n const hasWorkflowActivePaths = Object.values(workflowActivePaths).length > 0;\n\n return (\n <div className=\"h-full pt-3 pb-12\">\n <div className=\"space-y-4 px-5 pb-5 border-b-sm border-border1\">\n {result?.runId && (\n <Button\n variant=\"light\"\n onClick={handleCancelWorkflowRun}\n disabled={!!cancelResponse?.message || isCancellingWorkflowRun}\n >\n {isCancellingWorkflowRun ? (\n <Icon>\n <Loader2 className=\"animate-spin\" />\n </Icon>\n ) : (\n <Icon>\n <CircleStopIcon />\n </Icon>\n )}\n {cancelResponse?.message || 'Cancel Workflow Run'}\n </Button>\n )}\n {(isResumingWorkflow || (isSuspendedSteps && isStreamingWorkflow)) && (\n <div className=\"py-2 px-5 flex items-center gap-2 bg-surface5 -mx-5 -mt-5 border-b-sm border-border1\">\n <Icon>\n <Loader2 className=\"animate-spin text-icon6\" />\n </Icon>\n <Txt>Resuming workflow</Txt>\n </div>\n )}\n\n {!isSuspendedSteps && (\n <>\n {zodInputSchema ? (\n <DynamicForm\n schema={zodInputSchema}\n defaultValues={payload}\n isSubmitLoading={isStreamingWorkflow}\n submitButtonLabel=\"Run\"\n onSubmit={data => {\n setPayload(data);\n handleExecuteWorkflow(data);\n }}\n />\n ) : (\n <Button\n className=\"w-full\"\n variant=\"light\"\n disabled={isRunning}\n onClick={() => handleExecuteWorkflow(null)}\n >\n {isRunning ? (\n <Icon>\n <Loader2 className=\"animate-spin\" />\n </Icon>\n ) : (\n 'Trigger'\n )}\n </Button>\n )}\n </>\n )}\n\n {!isStreamingWorkflow &&\n isSuspendedSteps &&\n suspendedSteps?.map(step => {\n const stepDefinition = workflow.allSteps[step.stepId];\n if (!stepDefinition || stepDefinition.isWorkflow) return null;\n\n const stepSchema = stepDefinition?.resumeSchema\n ? resolveSerializedZodOutput(jsonSchemaToZod(parse(stepDefinition.resumeSchema)))\n : z.record(z.string(), z.any());\n return (\n <div className=\"flex flex-col px-4\" key={step.stepId}>\n <Text variant=\"secondary\" className=\"text-mastra-el-3\" size=\"xs\">\n {step.stepId}\n </Text>\n {step.suspendPayload && (\n <div>\n <CodeBlockDemo\n className=\"w-full overflow-x-auto p-2\"\n code={JSON.stringify(step.suspendPayload, null, 2)}\n language=\"json\"\n />\n </div>\n )}\n <DynamicForm\n schema={stepSchema}\n isSubmitLoading={isResumingWorkflow}\n submitButtonLabel=\"Resume\"\n onSubmit={data => {\n const stepIds = step.stepId?.split('.');\n handleResumeWorkflow({\n stepId: stepIds,\n runId: step.runId,\n suspendPayload: step.suspendPayload,\n resumeData: data,\n isLoading: false,\n });\n }}\n />\n </div>\n );\n })}\n\n {hasWorkflowActivePaths && (\n <>\n <hr className=\"border-border1 border-sm my-5\" />\n <div className=\"flex flex-col gap-2\">\n <Text variant=\"secondary\" className=\"px-4 text-mastra-el-3\" size=\"xs\">\n Status\n </Text>\n <div className=\"px-4 flex flex-col gap-4\">\n {Object.entries(workflowActivePaths)\n .filter(([key, _]) => key !== 'input' && !key.endsWith('.input'))\n .map(([stepId, { status, output }]) => {\n return <WorkflowStatus key={stepId} stepId={stepId} status={status} result={output ?? {}} />;\n })}\n </div>\n </div>\n </>\n )}\n </div>\n\n {result && (\n <div className=\"p-5 border-b-sm border-border1\">\n <WorkflowJsonDialog result={result} />\n </div>\n )}\n </div>\n );\n}\n\ninterface WorkflowResultSectionProps {\n result: WorkflowWatchResult;\n workflow: GetWorkflowResponse;\n}\n\nconst WorkflowResultSection = ({ result, workflow }: WorkflowResultSectionProps) => {\n const workflowState = result.payload.workflowState as WorkflowWatchResult['payload']['workflowState'] & {\n result: unknown | null;\n };\n\n const hasResult = Object.keys(workflowState.steps || {}).length > 0;\n if (!hasResult) return null;\n\n return (\n <div className=\"p-5\">\n <Txt variant=\"ui-sm\" className=\"text-icon3\">\n Final Output\n </Txt>\n <ul className=\"pt-4\">\n {Object.entries(workflowState.steps || {}).map(([stepId, stepResult]) => {\n const stepDefinition = workflow.steps[stepId];\n if (!stepDefinition) return null;\n\n return (\n <li\n key={stepId}\n className=\"border-b-sm border-dashed border-border1 last:border-b-0 py-4 first:pt-0 last:pb-0\"\n >\n <WorkflowResultFinishedStep stepResult={stepResult.output} stepDefinition={stepDefinition} />\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\ninterface WorkflowResultFinishedStepProps {\n stepResult: unknown;\n stepDefinition: GetWorkflowResponse['steps'][string];\n}\n\nconst WorkflowResultFinishedStep = ({ stepResult, stepDefinition }: WorkflowResultFinishedStepProps) => {\n const id = useId();\n\n try {\n const zodObjectSchema = resolveSerializedZodOutput(jsonSchemaToZod(parse(stepDefinition.outputSchema)));\n\n if (zodObjectSchema?._def?.typeName === 'ZodString') {\n return (\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <Icon>\n <Footprints className=\"text-icon3\" />\n </Icon>\n\n <Txt as=\"label\" htmlFor={id} variant=\"ui-sm\" className=\"text-icon3\">\n {stepDefinition.description || stepDefinition.id}\n </Txt>\n </div>\n <Input id={id} defaultValue={stepResult as string} readOnly />\n </div>\n );\n }\n\n return (\n <div>\n <div className=\"flex items-center gap-2 pb-2\">\n <Icon>\n <Footprints className=\"text-icon3\" />\n </Icon>\n <Txt variant=\"ui-sm\" className=\"text-icon3\">\n {stepDefinition.description || stepDefinition.id}\n </Txt>\n </div>\n <DynamicForm\n key={JSON.stringify(stepResult)}\n schema={zodObjectSchema}\n defaultValues={stepResult as Record<string, unknown>}\n readOnly\n />\n </div>\n );\n } catch (err: unknown) {\n console.error('Error parsing output schema', err);\n return <Txt>An error occured. Please open an issue on GitHub.</Txt>;\n }\n};\n\nconst WorkflowJsonDialog = ({ result }: { result: Record<string, unknown> }) => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <Button variant=\"light\" onClick={() => setOpen(true)} className=\"w-full\" size=\"lg\">\n <Icon>\n <Braces className=\"text-icon3\" />\n </Icon>\n Open Workflow Execution (JSON)\n </Button>\n\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogPortal>\n <DialogContent className=\"max-w-6xl max-h-[90vh] overflow-y-auto overflow-x-hidden bg-surface2\">\n <DialogTitle>Workflow Execution (JSON)</DialogTitle>\n <div className=\"w-full h-full overflow-x-scroll\">\n <SyntaxHighlighter data={result} className=\"p-4\" />\n </div>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n </>\n );\n};\n\nconst CircleStopIcon = () => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" width=\"16\" height=\"16\">\n <rect width=\"10\" height=\"10\" x=\"3\" y=\"3\" rx=\"2\" />\n </svg>\n );\n};\n","import { Skeleton } from '@/components/ui/skeleton';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate } from 'date-fns';\nimport clsx from 'clsx';\nimport { WorkflowRun } from '@mastra/core';\n\nexport interface WorkflowRunsProps {\n workflowId: string;\n runId?: string;\n isLoading: boolean;\n runs: WorkflowRun[];\n onPressRun: ({ workflowId, runId }: { workflowId: string; runId: string }) => void;\n}\n\nexport const WorkflowRuns = ({ workflowId, runId, isLoading, runs, onPressRun }: WorkflowRunsProps) => {\n if (isLoading) {\n return (\n <div className=\"p-4\">\n <Skeleton className=\"h-[600px]\" />\n </div>\n );\n }\n\n if (runs.length === 0) {\n return (\n <div className=\"p-4\">\n <Txt variant=\"ui-md\" className=\"text-icon6 text-center\">\n No previous run\n </Txt>\n </div>\n );\n }\n\n return (\n <ol className=\"pb-10\">\n {runs.map(run => (\n <li key={run.runId}>\n <button\n onClick={() => onPressRun({ workflowId, runId: run.runId })}\n className={clsx('px-3 py-2 border-b-sm border-border1 block w-full hover:bg-surface4 text-left', {\n 'bg-surface4': run.runId === runId,\n })}\n >\n <Txt variant=\"ui-lg\" className=\"font-medium text-icon6 truncate\" as=\"p\">\n {run.runId}\n </Txt>\n\n <Txt variant=\"ui-sm\" className=\"font-medium text-icon3 truncate\" as=\"p\">\n {typeof run?.snapshot === 'string'\n ? ''\n : run?.snapshot?.timestamp\n ? formatDate(run?.snapshot?.timestamp, 'MMM d, yyyy h:mm a')\n : ''}\n </Txt>\n </button>\n </li>\n ))}\n </ol>\n );\n};\n","'use client';\n\nimport {\n ColumnDef as ReactTableColumnDef,\n flexRender,\n getCoreRowModel,\n PaginationState,\n SortingState,\n useReactTable,\n} from '@tanstack/react-table';\nimport { useState } from 'react';\n\nimport { Button } from '@/components/ui/button';\nimport { Table, Tbody, Cell, Th, Thead, Row } from '@/ds/components/Table';\n\nimport { PaginationResult } from '@/lib/pagination/types';\nimport { Skeleton } from './skeleton';\n\nexport interface DataTableProps<TData, TValue> {\n /**\n * table columns\n */\n columns: ReactTableColumnDef<TData, TValue>[];\n /**\n * table data\n */\n data: TData[];\n\n pagination?: PaginationResult;\n /**\n * goto next page\n */\n gotoNextPage?: () => void;\n /**\n * goto previous page\n */\n gotoPreviousPage?: () => void;\n\n /**\n * get the row id\n */\n getRowId?: (row: TData) => string;\n\n /**\n * selected row id to use for row selection\n */\n selectedRowId?: string;\n\n /**\n * loading state\n */\n isLoading?: boolean;\n\n /**\n * text to display when there are no results\n */\n emptyText?: string;\n onClick?: (row: TData) => void;\n}\n\nexport const DataTable = <TData, TValue>({\n columns,\n data,\n pagination,\n gotoNextPage,\n gotoPreviousPage,\n getRowId,\n selectedRowId,\n isLoading,\n emptyText,\n onClick,\n}: DataTableProps<TData, TValue>) => {\n const [sorting, setSorting] = useState<SortingState>([]);\n const [{ pageIndex, pageSize }, setPagination] = useState<PaginationState>({\n pageIndex: pagination ? Math.floor(pagination.offset / pagination.limit) : 0,\n pageSize: pagination?.limit ?? 10,\n });\n const [rowSelection, setRowSelection] = useState({});\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: true,\n pageCount: pagination ? Math.ceil(pagination.total / pagination.limit) : -1,\n state: {\n sorting,\n pagination: {\n pageIndex,\n pageSize,\n },\n rowSelection,\n },\n getRowId,\n onPaginationChange: setPagination,\n onSortingChange: setSorting,\n enableRowSelection: true,\n enableMultiRowSelection: false,\n onRowSelectionChange: setRowSelection,\n });\n\n const emptyNode = (\n <Row>\n <Cell colSpan={columns.length}>\n <div className=\"py-12 text-center w-full\">No {emptyText || 'results'}</div>\n </Cell>\n </Row>\n );\n\n const ths = table.getHeaderGroups()[0];\n const rows = table.getRowModel().rows;\n\n return (\n <div>\n <Table>\n <Thead className=\"sticky top-0 bg-surface2\">\n {ths.headers.map(header => {\n const size = header.column.getSize();\n const meta = header.column.columnDef.meta as { width?: string };\n\n return (\n <Th key={header.id} style={{ width: meta?.width || size || 'auto' }}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </Th>\n );\n })}\n </Thead>\n <Tbody>\n {isLoading ? (\n <>\n {Array.from({ length: 3 }).map((_, rowIndex) => (\n <Row key={rowIndex} onClick={() => {}}>\n {Array.from({ length: columns.length }).map((_, cellIndex) => (\n <Cell key={`row-${rowIndex}-cell-${cellIndex}`}>\n <Skeleton className=\"h-4 w-1/2\" />\n </Cell>\n ))}\n </Row>\n ))}\n </>\n ) : rows?.length > 0 ? (\n rows.map(row => (\n <Row\n key={row.id}\n data-state={(row.getIsSelected() || row.id === selectedRowId) && 'selected'}\n onClick={() => onClick?.(row.original)}\n >\n {row.getVisibleCells().map(cell => flexRender(cell.column.columnDef.cell, cell.getContext()))}\n </Row>\n ))\n ) : (\n emptyNode\n )}\n </Tbody>\n </Table>\n\n {pagination && (\n <div className=\"mt-4 flex items-center justify-between px-2\">\n <div className=\"text-muted-foreground text-sm\">\n Showing {pagination.offset + 1} to {Math.min(pagination.offset + data.length, pagination.total)} of{' '}\n {pagination.total} results\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"flex items-center space-x-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={gotoPreviousPage} disabled={!pagination.offset}>\n Previous\n </Button>\n <Button variant=\"outline\" size=\"sm\" onClick={gotoNextPage} disabled={!pagination.hasMore}>\n Next\n </Button>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n};\n","import { cn } from '@/lib/utils';\n\nexport function MainContentLayout({\n children,\n className,\n style,\n}: {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}) {\n const devStyleRequested = devUIStyleRequested('MainContentLayout');\n\n return (\n <main\n className={cn(`grid grid-rows-[auto_1fr] h-full items-start content-start`, className)}\n style={{ ...style, ...(devStyleRequested ? { border: '3px dotted red' } : {}) }}\n >\n {children}\n </main>\n );\n}\n\nexport function MainContentContent({\n children,\n className,\n isCentered = false,\n isDivided = false,\n hasLeftServiceColumn = false,\n style,\n}: {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n // content is centered in the middle of the page e.g. for empty state\n isCentered?: boolean;\n // content is split into two columns equal width columns\n isDivided?: boolean;\n // used when the left column is a service column (e.g. agent history nav)\n hasLeftServiceColumn?: boolean;\n}) {\n const devStyleRequested = devUIStyleRequested('MainContentContent');\n\n return (\n <div\n className={cn(\n `grid overflow-y-auto h-full `,\n `overflow-x-auto min-w-[min-content]`,\n {\n 'items-start content-start': !isCentered && !isDivided && !hasLeftServiceColumn,\n 'grid place-items-center': isCentered,\n 'grid-cols-[1fr_1fr]': isDivided && !hasLeftServiceColumn,\n 'grid-cols-[auto_1fr_1fr]': isDivided && hasLeftServiceColumn,\n 'grid-cols-[auto_1fr]': !isDivided && hasLeftServiceColumn,\n },\n className,\n )}\n style={{ ...style, ...(devStyleRequested ? { border: '3px dotted orange' } : {}) }}\n >\n {children}\n </div>\n );\n}\n\nfunction devUIStyleRequested(name: string) {\n try {\n const raw = localStorage.getItem('add-dev-style-to-components');\n if (!raw) return false;\n\n const components = raw\n .split(',')\n .map(c => c.trim())\n .filter(Boolean); // remove empty strings\n\n return components.includes(name);\n } catch (error) {\n console.error('Error reading or parsing localStorage:', error);\n return false;\n }\n}\n","import { Button } from '@/ds/components/Button';\nimport { Icon } from '@/ds/icons/Icon';\nimport clsx from 'clsx';\nimport { X } from 'lucide-react';\nimport { ElementType } from 'react';\n\nexport interface ThreadsProps {\n children: React.ReactNode;\n}\n\nexport const Threads = ({ children }: ThreadsProps) => {\n return <nav className=\"bg-surface2 border-r-sm border-border1 min-h-full overflow-hidden\">{children}</nav>;\n};\n\nexport interface ThreadLinkProps {\n children: React.ReactNode;\n as?: ElementType;\n href?: string;\n className?: string;\n prefetch?: boolean;\n to?: string;\n}\n\nexport const ThreadLink = ({ children, as: Component = 'a', href, className, prefetch, to }: ThreadLinkProps) => {\n return (\n <Component\n href={href}\n prefetch={prefetch}\n to={to}\n className={clsx('text-ui-sm flex h-full w-full flex-col justify-center font-medium', className)}\n >\n {children}\n </Component>\n );\n};\n\nexport interface ThreadListProps {\n children: React.ReactNode;\n}\n\nexport const ThreadList = ({ children }: ThreadListProps) => {\n return <ol>{children}</ol>;\n};\n\nexport interface ThreadItemProps {\n children: React.ReactNode;\n isActive?: boolean;\n}\n\nexport const ThreadItem = ({ children, isActive }: ThreadItemProps) => {\n return (\n <li\n className={clsx(\n 'border-b-sm border-border1 hover:bg-surface3 group flex h-[54px] items-center justify-between gap-2 pl-5 py-2',\n isActive && 'bg-surface4',\n )}\n >\n {children}\n </li>\n );\n};\n\nexport interface ThreadDeleteButtonProps {\n onClick: () => void;\n}\n\nexport const ThreadDeleteButton = ({ onClick }: ThreadDeleteButtonProps) => {\n return (\n <Button\n className=\"shrink-0 border-none bg-transparent opacity-0 transition-all group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onClick}\n >\n <Icon>\n <X aria-label=\"delete thread\" className=\"text-icon3\" />\n </Icon>\n </Button>\n );\n};\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { SlashIcon } from '../../icons/SlashIcon';\n\nexport interface BreadcrumbProps {\n children?: React.ReactNode;\n label?: string;\n}\n\nexport const Breadcrumb = ({ children, label }: BreadcrumbProps) => {\n return (\n <nav aria-label={label}>\n <ol className=\"gap-sm flex items-center\">{children}</ol>\n </nav>\n );\n};\n\nexport interface CrumbProps {\n isCurrent?: boolean;\n as: React.ElementType;\n className?: string;\n to: string;\n prefetch?: boolean | null;\n children: React.ReactNode;\n}\n\nexport const Crumb = ({ className, as, isCurrent, ...props }: CrumbProps) => {\n const Root = as || 'span';\n\n return (\n <>\n <li className=\"flex h-full items-center\">\n <Root\n aria-current={isCurrent ? 'page' : undefined}\n className={clsx('text-ui-lg leading-ui-lg font-medium', isCurrent ? 'text-white' : 'text-icon3', className)}\n {...props}\n />\n </li>\n {!isCurrent && (\n <li role=\"separator\" className=\"flex h-full items-center\">\n <Icon className=\"text-icon3\">\n <SlashIcon />\n </Icon>\n </li>\n )}\n </>\n );\n};\n","import React from 'react';\n\nexport const DarkLogo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg width=\"100\" height=\"100\" viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M49.9996 13.1627C29.6549 13.1627 13.1622 29.6553 13.1622 50.0001C13.1622 70.3449 29.6549 86.8375 49.9996 86.8375C70.3444 86.8375 86.8371 70.3449 86.8371 50.0001C86.8371 29.6553 70.3444 13.1627 49.9996 13.1627ZM10 50.0001C10 27.9089 27.9084 10.0005 49.9996 10.0005C72.0908 10.0005 89.9992 27.9089 89.9992 50.0001C89.9992 72.0913 72.0908 89.9997 49.9996 89.9997C27.9084 89.9997 10 72.0913 10 50.0001Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M43.3709 19.4582C35.493 17.9055 28.4985 19.4076 23.954 23.9521C19.4094 28.4967 17.9073 35.4911 19.46 43.3691C21.0103 51.235 25.5889 59.7924 32.8993 67.1028C40.2097 74.4132 48.7671 78.9918 56.633 80.5421C64.511 82.0948 71.5054 80.5927 76.05 76.0481C80.5945 71.5036 82.0966 64.5091 80.5439 56.6312C78.9936 48.7653 74.415 40.2079 67.1046 32.8975C59.7942 25.5871 51.2368 21.0085 43.3709 19.4582ZM43.9824 16.3557C52.5432 18.043 61.6476 22.9685 69.3406 30.6615C77.0336 38.3545 81.9591 47.4589 83.6464 56.0197C85.3313 64.5685 83.8044 72.7657 78.286 78.2841C72.7675 83.8026 64.5704 85.3295 56.0216 83.6446C47.4607 81.9573 38.3563 77.0317 30.6633 69.3388C22.9704 61.6458 18.0448 52.5414 16.3575 43.9805C14.6726 35.4317 16.1995 27.2346 21.718 21.7161C27.2364 16.1977 35.4336 14.6708 43.9824 16.3557Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M65.8864 51.719H34.314V48.5568H65.8864V51.719Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M59.2351 43.2352L43.194 59.2763L40.958 57.0403L56.9991 40.9992L59.2351 43.2352Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M43.1969 40.9992L59.2379 57.0403L57.002 59.2763L40.9609 43.2352L43.1969 40.9992Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M23.7151 33.0924C17.0466 37.565 13.1629 43.573 13.1629 49.9999C13.1629 56.4269 17.0466 62.4349 23.7151 66.9075C30.3734 71.3733 39.662 74.1867 50.0004 74.1867C60.3388 74.1867 69.6274 71.3733 76.2857 66.9075C82.9541 62.4349 86.8378 56.4269 86.8378 49.9999C86.8378 43.573 82.9541 37.565 76.2857 33.0924C69.6274 28.6266 60.3388 25.8132 50.0004 25.8132C39.662 25.8132 30.3734 28.6266 23.7151 33.0924ZM21.9537 30.4662C29.2002 25.6059 39.1209 22.651 50.0004 22.651C60.8799 22.651 70.8006 25.6059 78.0471 30.4662C85.2834 35.3197 90 42.1957 90 49.9999C90 57.8042 85.2834 64.6802 78.0471 69.5337C70.8006 74.394 60.8799 77.3489 50.0004 77.3489C39.1209 77.3489 29.2002 74.394 21.9537 69.5337C14.7174 64.6802 10.0008 57.8042 10.0008 49.9999C10.0008 42.1957 14.7174 35.3197 21.9537 30.4662Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import { Icon } from '@/ds/icons';\nimport { Txt } from '../Txt';\nimport clsx from 'clsx';\n\nexport interface EntityProps {\n children: React.ReactNode;\n className?: string;\n onClick?: () => void;\n}\n\nexport const Entity = ({ children, className, onClick }: EntityProps) => {\n return (\n <div\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={e => {\n if (!onClick) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick?.();\n }\n }}\n className={clsx(\n 'flex gap-3 group/entity bg-surface3 rounded-lg border-sm border-border1 py-3 px-4',\n onClick && 'cursor-pointer hover:bg-surface4 transition-all',\n className,\n )}\n onClick={onClick}\n >\n {children}\n </div>\n );\n};\n\nexport const EntityIcon = ({ children, className }: EntityProps) => {\n return (\n <Icon size=\"lg\" className={clsx('text-icon3 mt-1', className)}>\n {children}\n </Icon>\n );\n};\n\nexport const EntityName = ({ children, className }: EntityProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-lg\" className={clsx('text-icon6 font-medium', className)}>\n {children}\n </Txt>\n );\n};\n\nexport const EntityDescription = ({ children, className }: EntityProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className={clsx('text-icon3', className)}>\n {children}\n </Txt>\n );\n};\n\nexport const EntityContent = ({ children, className }: EntityProps) => {\n return <div className={className}>{children}</div>;\n};\n","import React, { ElementType, ReactNode } from 'react';\n\nimport { Txt } from '../Txt';\n\nexport interface EmptyStateProps {\n as?: ElementType;\n iconSlot: ReactNode;\n titleSlot: ReactNode;\n descriptionSlot: ReactNode;\n actionSlot: ReactNode;\n}\n\nexport const EmptyState = ({\n iconSlot,\n titleSlot,\n descriptionSlot,\n actionSlot,\n as: Component = 'div',\n}: EmptyStateProps) => {\n return (\n <div className=\"flex w-[340px] flex-col items-center justify-center text-center\">\n <div className=\"h-auto [&>svg]:w-[126px]\">{iconSlot}</div>\n <Component className=\"text-icon6 pt-[34px] font-serif text-[1.75rem] font-semibold\">{titleSlot}</Component>\n\n <Txt variant=\"ui-lg\" className=\"text-icon3 pb-[34px]\">\n {descriptionSlot}\n </Txt>\n\n {actionSlot}\n </div>\n );\n};\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nexport interface PollingOptions<TData, TError = Error> {\n /** Async function that fetches the data */\n fetchFn: () => Promise<TData>;\n /** Polling interval in milliseconds */\n interval?: number;\n /** Whether polling is enabled initially */\n enabled?: boolean;\n /** Callback function called with new data */\n onSuccess?: (data: TData) => void;\n /** Callback function called on error */\n onError?: (error: TError) => void;\n /** Function to determine if polling should continue */\n shouldContinue?: (data: TData) => boolean;\n /** Restarts the polling when true */\n restartPolling?: boolean;\n}\n\nexport interface PollingResult<TData, TError> {\n /** Current polling status */\n isPolling: boolean;\n /** Loading state for current request */\n isLoading: boolean;\n /** Loading state for first call */\n firstCallLoading: boolean;\n /** Current error state */\n error: TError | null;\n /** Latest data received */\n data: TData | null;\n /** Function to start polling */\n startPolling: () => void;\n /** Function to stop polling */\n stopPolling: () => void;\n\n /** Refetch the data on demand with/without polling. default is false */\n refetch: (withPolling?: boolean) => void;\n}\n\nexport function usePolling<TData, TError = Error>({\n fetchFn,\n interval = 3000,\n enabled = false,\n onSuccess,\n onError,\n shouldContinue = () => true,\n restartPolling = false,\n}: PollingOptions<TData, TError>): PollingResult<TData, TError> {\n const [isPolling, setIsPolling] = useState(enabled);\n const [error, setError] = useState<TError | null>(null);\n const [data, setData] = useState<TData | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [firstCallLoading, setFirstCallLoading] = useState(false);\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n const mountedRef = useRef(true);\n const [restart, setRestart] = useState(restartPolling);\n\n const cleanup = useCallback(() => {\n console.log('cleanup');\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n }, []);\n\n const stopPolling = useCallback(() => {\n console.log('stopPolling');\n setIsPolling(false);\n cleanup();\n }, [cleanup]);\n\n const startPolling = useCallback(() => {\n console.log('startPolling');\n setIsPolling(true);\n setError(null);\n }, []);\n\n const executePoll = useCallback(\n async (refetch: boolean = true) => {\n // Check if component is still mounted\n if (!mountedRef.current) return;\n setIsLoading(true);\n\n try {\n const result = await fetchFn();\n\n setData(result);\n setError(null);\n onSuccess?.(result);\n\n // Check if we should continue polling\n if (shouldContinue(result) && refetch) {\n timeoutRef.current = setTimeout(executePoll, interval);\n } else {\n stopPolling();\n }\n } catch (err) {\n if (!mountedRef.current) return;\n setError(err as TError);\n onError?.(err as TError);\n stopPolling();\n } finally {\n if (mountedRef.current) {\n setFirstCallLoading(false);\n setIsLoading(false);\n }\n }\n },\n [fetchFn, interval, onSuccess, onError, shouldContinue, stopPolling],\n );\n\n const refetch = useCallback(\n (withPolling: boolean = false) => {\n console.log('refetch', { withPolling });\n if (withPolling) {\n setIsPolling(true);\n } else {\n executePoll(false);\n }\n setError(null);\n },\n [executePoll],\n );\n\n useEffect(() => {\n mountedRef.current = true;\n\n if (enabled && isPolling) {\n executePoll(true);\n }\n\n return () => {\n console.log('cleanup poll');\n mountedRef.current = false;\n cleanup();\n };\n }, [enabled, isPolling, executePoll, cleanup]);\n\n useEffect(() => {\n setRestart(restartPolling);\n }, [restartPolling]);\n\n useEffect(() => {\n if (restart && !isPolling) {\n setIsPolling(true);\n executePoll();\n setRestart(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [restart]);\n\n return {\n isPolling,\n isLoading,\n error,\n data,\n startPolling,\n stopPolling,\n firstCallLoading,\n refetch,\n };\n}\n\nexport default usePolling;\n"],"names":["Button","SyntaxHighlighter","useCopyToClipboard","CheckIcon","memoizeMarkdownComponents","variantClasses","Badge","useCodemirrorTheme","t","ToolFallback","AssistantActionBar","src","TooltipProvider","React","ThreadWrapper","ThreadWelcome","EditComposer","Composer","SpeechInput","ComposerAction","CircleStopIcon","convertMessage","message","defaultModelSettings","modelSettings","chatWithGenerate","Table","groupEvals","groups","nextTrace","span","prevTrace","SpanComponent","tokens","str","group","step","layoutedNodes","layoutedEdges","initial","stepsList","Fragment","run","id","currentState","uuid","label","stepGraph","stepSubscriberGraph","value","key","field","BaseAutoForm","props","schema","z","CodeBlock","payload","_","refetch"],"mappings":"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","x_google_ignoreList":[2,3,4]}
|