mirror of
https://github.com/langgenius/dify.git
synced 2026-04-05 05:24:20 +08:00
chore: knip fix (#34481)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -35,7 +35,7 @@ const TagManagementModal = dynamic(() => import('@/app/components/base/tag-manag
|
||||
ssr: false,
|
||||
})
|
||||
|
||||
export type IAppDetailLayoutProps = {
|
||||
type IAppDetailLayoutProps = {
|
||||
children: React.ReactNode
|
||||
appId: string
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import { useAppWorkflow } from '@/service/use-workflow'
|
||||
import { AppModeEnum } from '@/types/app'
|
||||
import { asyncRunSafe } from '@/utils'
|
||||
|
||||
export type ICardViewProps = {
|
||||
type ICardViewProps = {
|
||||
appId: string
|
||||
isInPanel?: boolean
|
||||
className?: string
|
||||
|
||||
@@ -27,7 +27,7 @@ const TIME_PERIOD_MAPPING: { value: number, name: TimePeriodName }[] = [
|
||||
|
||||
const queryDateFormat = 'YYYY-MM-DD HH:mm'
|
||||
|
||||
export type IChartViewProps = {
|
||||
type IChartViewProps = {
|
||||
appId: string
|
||||
headerRight: React.ReactNode
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
.logTable td {
|
||||
padding: 7px 8px;
|
||||
box-sizing: border-box;
|
||||
max-width: 200px;
|
||||
}
|
||||
|
||||
.pagination li {
|
||||
list-style: none;
|
||||
}
|
||||
@@ -26,7 +26,7 @@ import { usePathname } from '@/next/navigation'
|
||||
import { useDatasetDetail, useDatasetRelatedApps } from '@/service/knowledge/use-dataset'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
export type IAppDetailLayoutProps = {
|
||||
type IAppDetailLayoutProps = {
|
||||
children: React.ReactNode
|
||||
datasetId: string
|
||||
}
|
||||
|
||||
@@ -13,10 +13,6 @@ import { useProviderContext } from '@/context/provider-context'
|
||||
import { useRouter } from '@/next/navigation'
|
||||
import { useLogout, useUserProfile } from '@/service/use-common'
|
||||
|
||||
export type IAppSelector = {
|
||||
isMobile: boolean
|
||||
}
|
||||
|
||||
export default function AppSelector() {
|
||||
const router = useRouter()
|
||||
const { t } = useTranslation()
|
||||
|
||||
@@ -5,7 +5,7 @@ import AppInfoModals from './app-info-modals'
|
||||
import AppInfoTrigger from './app-info-trigger'
|
||||
import { useAppInfoActions } from './use-app-info-actions'
|
||||
|
||||
export type IAppInfoProps = {
|
||||
type IAppInfoProps = {
|
||||
expand: boolean
|
||||
onlyShowDetail?: boolean
|
||||
openState?: boolean
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
import Tooltip from '@/app/components/base/tooltip'
|
||||
import AppIcon from '../base/app-icon'
|
||||
|
||||
export type IAppBasicProps = {
|
||||
type IAppBasicProps = {
|
||||
iconType?: 'app' | 'api' | 'dataset' | 'webapp' | 'notion'
|
||||
icon?: string
|
||||
icon_background?: string | null
|
||||
|
||||
@@ -17,7 +17,7 @@ import DatasetSidebarDropdown from './dataset-sidebar-dropdown'
|
||||
import NavLink from './nav-link'
|
||||
import ToggleButton from './toggle-button'
|
||||
|
||||
export type IAppDetailNavProps = {
|
||||
type IAppDetailNavProps = {
|
||||
iconType?: 'app' | 'dataset'
|
||||
navigation: Array<{
|
||||
name: string
|
||||
|
||||
@@ -39,7 +39,5 @@ export enum AnnotationEnableStatus {
|
||||
}
|
||||
|
||||
export enum JobStatus {
|
||||
waiting = 'waiting',
|
||||
processing = 'processing',
|
||||
completed = 'completed',
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { HTMLProps, PropsWithChildren } from 'react'
|
||||
import { RiArrowRightUpLine } from '@remixicon/react'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
export type SuggestedActionProps = PropsWithChildren<HTMLProps<HTMLAnchorElement> & {
|
||||
type SuggestedActionProps = PropsWithChildren<HTMLProps<HTMLAnchorElement> & {
|
||||
icon?: React.ReactNode
|
||||
link?: string
|
||||
disabled?: boolean
|
||||
|
||||
@@ -3,7 +3,7 @@ import type { FC, ReactNode } from 'react'
|
||||
import * as React from 'react'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
export type IFeaturePanelProps = {
|
||||
type IFeaturePanelProps = {
|
||||
className?: string
|
||||
headerIcon?: ReactNode
|
||||
title: ReactNode
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import type { FC } from 'react'
|
||||
import * as React from 'react'
|
||||
|
||||
export type IGroupNameProps = {
|
||||
type IGroupNameProps = {
|
||||
name: string
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import * as React from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
export type IOperationBtnProps = {
|
||||
type IOperationBtnProps = {
|
||||
className?: string
|
||||
type: 'add' | 'edit'
|
||||
actionName?: string
|
||||
|
||||
@@ -4,7 +4,7 @@ import * as React from 'react'
|
||||
|
||||
import s from './style.module.css'
|
||||
|
||||
export type IVarHighlightProps = {
|
||||
type IVarHighlightProps = {
|
||||
name: string
|
||||
className?: string
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next'
|
||||
import Button from '@/app/components/base/button'
|
||||
import WarningMask from '.'
|
||||
|
||||
export type IFormattingChangedProps = {
|
||||
type IFormattingChangedProps = {
|
||||
onConfirm: () => void
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next'
|
||||
import Button from '@/app/components/base/button'
|
||||
import WarningMask from '.'
|
||||
|
||||
export type IFormattingChangedProps = {
|
||||
type IFormattingChangedProps = {
|
||||
onConfirm: () => void
|
||||
onCancel: () => void
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import type { FC } from 'react'
|
||||
import * as React from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
export type IHasNotSetAPIProps = {
|
||||
type IHasNotSetAPIProps = {
|
||||
onSetting: () => void
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import * as React from 'react'
|
||||
|
||||
import s from './style.module.css'
|
||||
|
||||
export type IWarningMaskProps = {
|
||||
type IWarningMaskProps = {
|
||||
title: string
|
||||
description: string
|
||||
footer: React.ReactNode
|
||||
|
||||
@@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next'
|
||||
import Button from '@/app/components/base/button'
|
||||
import VarHighlight from '../../base/var-highlight'
|
||||
|
||||
export type IConfirmAddVarProps = {
|
||||
type IConfirmAddVarProps = {
|
||||
varNameArr: string[]
|
||||
onConfirm: () => void
|
||||
onCancel: () => void
|
||||
|
||||
@@ -33,7 +33,7 @@ import { getNewVar, getVars } from '@/utils/var'
|
||||
import ConfirmAddVar from './confirm-add-var'
|
||||
import PromptEditorHeightResizeWrap from './prompt-editor-height-resize-wrap'
|
||||
|
||||
export type ISimplePromptInput = {
|
||||
type ISimplePromptInput = {
|
||||
mode: AppModeEnum
|
||||
promptTemplate: string
|
||||
promptVariables: PromptVariable[]
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
export const jsonObjectWrap = {
|
||||
type: 'object',
|
||||
properties: {},
|
||||
required: [],
|
||||
additionalProperties: true,
|
||||
}
|
||||
|
||||
export const jsonConfigPlaceHolder = JSON.stringify(
|
||||
{
|
||||
type: 'object',
|
||||
|
||||
@@ -52,7 +52,7 @@ const normalizeSelectDefaultValue = (inputVar: InputVar) => {
|
||||
return inputVar
|
||||
}
|
||||
|
||||
export type IConfigModalProps = {
|
||||
type IConfigModalProps = {
|
||||
isCreate?: boolean
|
||||
payload?: InputVar
|
||||
isShow: boolean
|
||||
|
||||
@@ -8,7 +8,7 @@ import { ReactSortable } from 'react-sortablejs'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
export type Options = string[]
|
||||
export type IConfigSelectProps = {
|
||||
type IConfigSelectProps = {
|
||||
options: Options
|
||||
onChange: (options: Options) => void
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import * as React from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import Button from '@/app/components/base/button'
|
||||
|
||||
export type IModalFootProps = {
|
||||
type IModalFootProps = {
|
||||
onConfirm: () => void
|
||||
onCancel: () => void
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import { useTranslation } from 'react-i18next'
|
||||
import InputVarTypeIcon from '@/app/components/workflow/nodes/_base/components/input-var-type-icon'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
export type ISelectTypeItemProps = {
|
||||
type ISelectTypeItemProps = {
|
||||
type: InputVarType
|
||||
selected: boolean
|
||||
onClick: () => void
|
||||
|
||||
@@ -1,152 +0,0 @@
|
||||
'use client'
|
||||
import type { FC } from 'react'
|
||||
import type { ExternalDataTool } from '@/models/common'
|
||||
import copy from 'copy-to-clipboard'
|
||||
import { noop } from 'es-toolkit/function'
|
||||
import * as React from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { useContext } from 'use-context-selector'
|
||||
import s from '@/app/components/app/configuration/config-prompt/style.module.css'
|
||||
import {
|
||||
Copy,
|
||||
CopyCheck,
|
||||
} from '@/app/components/base/icons/src/vender/line/files'
|
||||
import PromptEditor from '@/app/components/base/prompt-editor'
|
||||
import { toast } from '@/app/components/base/ui/toast'
|
||||
import ConfigContext from '@/context/debug-configuration'
|
||||
import { useModalContext } from '@/context/modal-context'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
type Props = {
|
||||
className?: string
|
||||
type: 'first-prompt' | 'next-iteration'
|
||||
value: string
|
||||
onChange: (value: string) => void
|
||||
}
|
||||
|
||||
const Editor: FC<Props> = ({
|
||||
className,
|
||||
type,
|
||||
value,
|
||||
onChange,
|
||||
}) => {
|
||||
const { t } = useTranslation()
|
||||
|
||||
const [isCopied, setIsCopied] = React.useState(false)
|
||||
const {
|
||||
modelConfig,
|
||||
hasSetBlockStatus,
|
||||
dataSets,
|
||||
showSelectDataSet,
|
||||
externalDataToolsConfig,
|
||||
setExternalDataToolsConfig,
|
||||
} = useContext(ConfigContext)
|
||||
const promptVariables = modelConfig.configs.prompt_variables
|
||||
const { setShowExternalDataToolModal } = useModalContext()
|
||||
const isFirstPrompt = type === 'first-prompt'
|
||||
const editorHeight = isFirstPrompt ? 'h-[336px]' : 'h-[52px]'
|
||||
|
||||
const handleOpenExternalDataToolModal = () => {
|
||||
setShowExternalDataToolModal({
|
||||
payload: {},
|
||||
onSaveCallback: (newExternalDataTool?: ExternalDataTool) => {
|
||||
if (!newExternalDataTool)
|
||||
return
|
||||
setExternalDataToolsConfig([...externalDataToolsConfig, newExternalDataTool])
|
||||
},
|
||||
onValidateBeforeSaveCallback: (newExternalDataTool: ExternalDataTool) => {
|
||||
for (let i = 0; i < promptVariables.length; i++) {
|
||||
if (promptVariables[i].key === newExternalDataTool.variable) {
|
||||
toast.error(t('varKeyError.keyAlreadyExists', { ns: 'appDebug', key: promptVariables[i].key }))
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
for (let i = 0; i < externalDataToolsConfig.length; i++) {
|
||||
if (externalDataToolsConfig[i].variable === newExternalDataTool.variable) {
|
||||
toast.error(t('varKeyError.keyAlreadyExists', { ns: 'appDebug', key: externalDataToolsConfig[i].variable }))
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
})
|
||||
}
|
||||
return (
|
||||
<div className={cn(className, s.gradientBorder, 'relative')}>
|
||||
<div className="rounded-xl bg-white">
|
||||
<div className={cn(s.boxHeader, 'flex h-11 items-center justify-between rounded-tl-xl rounded-tr-xl bg-white pb-1 pl-4 pr-3 pt-2 hover:shadow-xs')}>
|
||||
<div className="text-sm font-semibold uppercase text-indigo-800">{t(`agent.${isFirstPrompt ? 'firstPrompt' : 'nextIteration'}`, { ns: 'appDebug' })}</div>
|
||||
<div className={cn(s.optionWrap, 'items-center space-x-1')}>
|
||||
{!isCopied
|
||||
? (
|
||||
<Copy
|
||||
className="h-6 w-6 cursor-pointer p-1 text-gray-500"
|
||||
onClick={() => {
|
||||
copy(value)
|
||||
setIsCopied(true)
|
||||
}}
|
||||
/>
|
||||
)
|
||||
: (
|
||||
<CopyCheck className="h-6 w-6 p-1 text-gray-500" />
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<div className={cn(editorHeight, 'min-h-[102px] overflow-y-auto px-4 text-sm text-gray-700')}>
|
||||
<PromptEditor
|
||||
className={editorHeight}
|
||||
value={value}
|
||||
contextBlock={{
|
||||
show: true,
|
||||
selectable: !hasSetBlockStatus.context,
|
||||
datasets: dataSets.map(item => ({
|
||||
id: item.id,
|
||||
name: item.name,
|
||||
type: item.data_source_type,
|
||||
})),
|
||||
onAddContext: showSelectDataSet,
|
||||
}}
|
||||
variableBlock={{
|
||||
show: true,
|
||||
variables: modelConfig.configs.prompt_variables.filter(item => item.key && item.key.trim() && item.name && item.name.trim()).map(item => ({
|
||||
name: item.name,
|
||||
value: item.key,
|
||||
})),
|
||||
}}
|
||||
externalToolBlock={{
|
||||
show: true,
|
||||
externalTools: externalDataToolsConfig.map(item => ({
|
||||
name: item.label!,
|
||||
variableName: item.variable!,
|
||||
icon: item.icon,
|
||||
icon_background: item.icon_background,
|
||||
})),
|
||||
onAddExternalTool: handleOpenExternalDataToolModal,
|
||||
}}
|
||||
historyBlock={{
|
||||
show: false,
|
||||
selectable: false,
|
||||
history: {
|
||||
user: '',
|
||||
assistant: '',
|
||||
},
|
||||
onEditRole: noop,
|
||||
}}
|
||||
queryBlock={{
|
||||
show: false,
|
||||
selectable: false,
|
||||
}}
|
||||
onChange={onChange}
|
||||
onBlur={noop}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex pb-2 pl-4">
|
||||
<div className="h-[18px] rounded-md bg-gray-100 px-1 text-xs leading-[18px] text-gray-500">{value.length}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
export default React.memo(Editor)
|
||||
@@ -7,7 +7,7 @@ import * as React from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import Button from '@/app/components/base/button'
|
||||
|
||||
export type IAutomaticBtnProps = {
|
||||
type IAutomaticBtnProps = {
|
||||
onClick: () => void
|
||||
}
|
||||
const AutomaticBtn: FC<IAutomaticBtnProps> = ({
|
||||
|
||||
@@ -43,7 +43,7 @@ import useGenData from './use-gen-data'
|
||||
|
||||
const i18nPrefix = 'generate'
|
||||
|
||||
export type IGetAutomaticResProps = {
|
||||
type IGetAutomaticResProps = {
|
||||
mode: AppModeEnum
|
||||
isShow: boolean
|
||||
onClose: () => void
|
||||
|
||||
@@ -31,7 +31,7 @@ import { GeneratorType } from '../automatic/types'
|
||||
import useGenData from '../automatic/use-gen-data'
|
||||
|
||||
const i18nPrefix = 'generate'
|
||||
export type IGetCodeGeneratorResProps = {
|
||||
type IGetCodeGeneratorResProps = {
|
||||
flowId: string
|
||||
nodeId: string
|
||||
currentCode?: string
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next'
|
||||
import Button from '@/app/components/base/button'
|
||||
import s from './style.module.css'
|
||||
|
||||
export type IContrlBtnGroupProps = {
|
||||
type IContrlBtnGroupProps = {
|
||||
onSave: () => void
|
||||
onReset: () => void
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import Link from '@/next/link'
|
||||
import { useInfiniteDatasets } from '@/service/knowledge/use-dataset'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
export type ISelectDataSetProps = {
|
||||
type ISelectDataSetProps = {
|
||||
isShow: boolean
|
||||
onClose: () => void
|
||||
selectedIds: string[]
|
||||
|
||||
@@ -18,5 +18,3 @@ export const DebugWithMultipleModelContext = createContext<DebugWithMultipleMode
|
||||
})
|
||||
|
||||
export const useDebugWithMultipleModelContext = () => useContext(DebugWithMultipleModelContext)
|
||||
|
||||
export default DebugWithMultipleModelContext
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
.advancedPromptMode {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.advancedPromptMode::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: -1px;
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
background-color: rgba(68, 76, 231, 0.18);
|
||||
transform: skewX(-30deg);
|
||||
}
|
||||
@@ -1,204 +0,0 @@
|
||||
import type { ExternalDataTool } from '@/models/common'
|
||||
import {
|
||||
RiAddLine,
|
||||
RiArrowDownSLine,
|
||||
RiDeleteBinLine,
|
||||
} from '@remixicon/react'
|
||||
import copy from 'copy-to-clipboard'
|
||||
import { useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { useContext } from 'use-context-selector'
|
||||
import AppIcon from '@/app/components/base/app-icon'
|
||||
import {
|
||||
Settings01,
|
||||
} from '@/app/components/base/icons/src/vender/line/general'
|
||||
import { Tool03 } from '@/app/components/base/icons/src/vender/solid/general'
|
||||
import Switch from '@/app/components/base/switch'
|
||||
import { toast } from '@/app/components/base/ui/toast'
|
||||
import {
|
||||
Tooltip,
|
||||
TooltipContent,
|
||||
TooltipTrigger,
|
||||
} from '@/app/components/base/ui/tooltip'
|
||||
import ConfigContext from '@/context/debug-configuration'
|
||||
import { useModalContext } from '@/context/modal-context'
|
||||
|
||||
const Tools = () => {
|
||||
const { t } = useTranslation()
|
||||
const { setShowExternalDataToolModal } = useModalContext()
|
||||
const {
|
||||
externalDataToolsConfig,
|
||||
setExternalDataToolsConfig,
|
||||
modelConfig,
|
||||
} = useContext(ConfigContext)
|
||||
const [expanded, setExpanded] = useState(true)
|
||||
const [copied, setCopied] = useState(false)
|
||||
|
||||
const handleSaveExternalDataToolModal = (externalDataTool: ExternalDataTool, index: number) => {
|
||||
if (index > -1) {
|
||||
setExternalDataToolsConfig([
|
||||
...externalDataToolsConfig.slice(0, index),
|
||||
externalDataTool,
|
||||
...externalDataToolsConfig.slice(index + 1),
|
||||
])
|
||||
}
|
||||
else {
|
||||
setExternalDataToolsConfig([...externalDataToolsConfig, externalDataTool])
|
||||
}
|
||||
}
|
||||
const handleValidateBeforeSaveExternalDataToolModal = (newExternalDataTool: ExternalDataTool, index: number) => {
|
||||
const promptVariables = modelConfig?.configs?.prompt_variables || []
|
||||
for (let i = 0; i < promptVariables.length; i++) {
|
||||
if (promptVariables[i].key === newExternalDataTool.variable) {
|
||||
toast.error(t('varKeyError.keyAlreadyExists', { ns: 'appDebug', key: promptVariables[i].key }))
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
let existedExternalDataTools = []
|
||||
if (index > -1) {
|
||||
existedExternalDataTools = [
|
||||
...externalDataToolsConfig.slice(0, index),
|
||||
...externalDataToolsConfig.slice(index + 1),
|
||||
]
|
||||
}
|
||||
else {
|
||||
existedExternalDataTools = [...externalDataToolsConfig]
|
||||
}
|
||||
|
||||
for (let i = 0; i < existedExternalDataTools.length; i++) {
|
||||
if (existedExternalDataTools[i].variable === newExternalDataTool.variable) {
|
||||
toast.error(t('varKeyError.keyAlreadyExists', { ns: 'appDebug', key: existedExternalDataTools[i].variable }))
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
const handleOpenExternalDataToolModal = (payload: ExternalDataTool, index: number) => {
|
||||
setShowExternalDataToolModal({
|
||||
payload,
|
||||
onSaveCallback: (externalDataTool?: ExternalDataTool) => {
|
||||
if (!externalDataTool)
|
||||
return
|
||||
handleSaveExternalDataToolModal(externalDataTool, index)
|
||||
},
|
||||
onValidateBeforeSaveCallback: (newExternalDataTool: ExternalDataTool) => handleValidateBeforeSaveExternalDataToolModal(newExternalDataTool, index),
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="mt-3 rounded-xl bg-gray-50 px-3">
|
||||
<div className="flex h-12 items-center">
|
||||
<div className="flex grow items-center">
|
||||
<div
|
||||
className={`
|
||||
group mr-1 flex h-6 w-6 items-center justify-center rounded-md
|
||||
${externalDataToolsConfig.length && 'hover:bg-white hover:shadow-xs'}
|
||||
`}
|
||||
onClick={() => setExpanded(v => !v)}
|
||||
>
|
||||
{
|
||||
externalDataToolsConfig.length
|
||||
? <Tool03 className="h-4 w-4 text-[#444CE7] group-hover:hidden" />
|
||||
: <Tool03 className="h-4 w-4 text-[#444CE7]" />
|
||||
}
|
||||
{
|
||||
!!externalDataToolsConfig.length && (
|
||||
<RiArrowDownSLine className={`hidden h-4 w-4 cursor-pointer text-primary-600 group-hover:block ${expanded ? 'rotate-180' : 'rotate-0'}`} />
|
||||
)
|
||||
}
|
||||
</div>
|
||||
<div className="mr-1 text-sm font-semibold text-gray-800">
|
||||
{t('feature.tools.title', { ns: 'appDebug' })}
|
||||
</div>
|
||||
<Tooltip>
|
||||
<TooltipTrigger render={<span className="i-ri-question-line ml-1 h-4 w-4 shrink-0 text-text-quaternary" />} />
|
||||
<TooltipContent>
|
||||
<div className="max-w-[160px]">
|
||||
{t('feature.tools.tips', { ns: 'appDebug' })}
|
||||
</div>
|
||||
</TooltipContent>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{
|
||||
!expanded && !!externalDataToolsConfig.length && (
|
||||
<>
|
||||
<div className="mr-3 text-xs text-gray-500">{t('feature.tools.toolsInUse', { ns: 'appDebug', count: externalDataToolsConfig.length })}</div>
|
||||
<div className="mr-1 h-3.5 w-px bg-gray-200" />
|
||||
</>
|
||||
)
|
||||
}
|
||||
<div
|
||||
className="flex h-7 cursor-pointer items-center px-3 text-xs font-medium text-gray-700"
|
||||
onClick={() => handleOpenExternalDataToolModal({}, -1)}
|
||||
>
|
||||
<RiAddLine className="mr-[5px] h-3.5 w-3.5" />
|
||||
{t('operation.add', { ns: 'common' })}
|
||||
</div>
|
||||
</div>
|
||||
{
|
||||
expanded && !!externalDataToolsConfig.length && (
|
||||
<div className="pb-3">
|
||||
{
|
||||
externalDataToolsConfig.map((item, index: number) => (
|
||||
<div
|
||||
key={`${index}-${item.type}-${item.label}-${item.variable}`}
|
||||
className="group mb-1 flex items-center rounded-lg border-[0.5px] border-gray-200 bg-white px-2.5 py-2 shadow-xs last-of-type:mb-0"
|
||||
>
|
||||
<div className="flex grow items-center">
|
||||
<AppIcon
|
||||
size="large"
|
||||
className="mr-2 h-6! w-6! rounded-md border-[0.5px] border-black/5"
|
||||
icon={item.icon}
|
||||
background={item.icon_background}
|
||||
/>
|
||||
<div className="mr-2 text-[13px] font-medium text-gray-800">{item.label}</div>
|
||||
<Tooltip>
|
||||
<TooltipTrigger
|
||||
render={(
|
||||
<div
|
||||
className="text-xs text-gray-500"
|
||||
onClick={() => {
|
||||
copy(item.variable || '')
|
||||
setCopied(true)
|
||||
}}
|
||||
>
|
||||
{item.variable}
|
||||
</div>
|
||||
)}
|
||||
/>
|
||||
<TooltipContent>
|
||||
{copied ? t('copied', { ns: 'appApi' }) : `${item.variable}, ${t('copy', { ns: 'appApi' })}`}
|
||||
</TooltipContent>
|
||||
</Tooltip>
|
||||
</div>
|
||||
<div
|
||||
className="mr-1 hidden h-6 w-6 cursor-pointer items-center justify-center rounded-md hover:bg-black/5 group-hover:flex"
|
||||
onClick={() => handleOpenExternalDataToolModal(item, index)}
|
||||
>
|
||||
<Settings01 className="h-4 w-4 text-gray-500" />
|
||||
</div>
|
||||
<div
|
||||
className="group/action hidden h-6 w-6 cursor-pointer items-center justify-center rounded-md hover:bg-[#FEE4E2] group-hover:flex"
|
||||
onClick={() => setExternalDataToolsConfig([...externalDataToolsConfig.slice(0, index), ...externalDataToolsConfig.slice(index + 1)])}
|
||||
>
|
||||
<RiDeleteBinLine className="h-4 w-4 text-gray-500 group-hover/action:text-[#D92D20]" />
|
||||
</div>
|
||||
<div className="ml-2 mr-3 hidden h-3.5 w-px bg-gray-200 group-hover:block" />
|
||||
<Switch
|
||||
size="lg"
|
||||
value={item.enabled ?? false}
|
||||
onChange={(enabled: boolean) => handleSaveExternalDataToolModal({ ...item, enabled }, index)}
|
||||
/>
|
||||
</div>
|
||||
))
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default Tools
|
||||
@@ -12,7 +12,7 @@ import { useGlobalPublicStore } from '@/context/global-public-context'
|
||||
import { cn } from '@/utils/classnames'
|
||||
import { AppTypeIcon, AppTypeLabel } from '../../type-selector'
|
||||
|
||||
export type AppCardProps = {
|
||||
type AppCardProps = {
|
||||
app: App
|
||||
canCreate: boolean
|
||||
onCreate: () => void
|
||||
|
||||
@@ -13,7 +13,7 @@ import { toast } from '@/app/components/base/ui/toast'
|
||||
import { cn } from '@/utils/classnames'
|
||||
import { formatFileSize } from '@/utils/format'
|
||||
|
||||
export type Props = {
|
||||
type Props = {
|
||||
file: File | undefined
|
||||
updateFile: (file?: File) => void
|
||||
className?: string
|
||||
|
||||
@@ -17,7 +17,7 @@ import EmptyElement from './empty-element'
|
||||
import Filter, { TIME_PERIOD_MAPPING } from './filter'
|
||||
import List from './list'
|
||||
|
||||
export type ILogsProps = {
|
||||
type ILogsProps = {
|
||||
appDetail: App
|
||||
}
|
||||
|
||||
|
||||
@@ -72,17 +72,17 @@ const defaultModalContext: ModalContextState = {
|
||||
setShowTriggerEventsLimitModal: noop,
|
||||
}
|
||||
|
||||
export type MockOverrides = {
|
||||
type MockOverrides = {
|
||||
providerContext?: Partial<typeof defaultProviderContext>
|
||||
modalContext?: Partial<typeof defaultModalContext>
|
||||
}
|
||||
|
||||
export type APIKeyInfoPanelRenderOptions = {
|
||||
type APIKeyInfoPanelRenderOptions = {
|
||||
mockOverrides?: MockOverrides
|
||||
} & Omit<RenderOptions, 'wrapper'>
|
||||
|
||||
// Setup function to configure mocks
|
||||
export function setupMocks(overrides: MockOverrides = {}) {
|
||||
function setupMocks(overrides: MockOverrides = {}) {
|
||||
mockUseProviderContext.mockReturnValue({
|
||||
...defaultProviderContext,
|
||||
...overrides.providerContext,
|
||||
@@ -95,7 +95,7 @@ export function setupMocks(overrides: MockOverrides = {}) {
|
||||
}
|
||||
|
||||
// Custom render function
|
||||
export function renderAPIKeyInfoPanel(options: APIKeyInfoPanelRenderOptions = {}) {
|
||||
function renderAPIKeyInfoPanel(options: APIKeyInfoPanelRenderOptions = {}) {
|
||||
const { mockOverrides, ...renderOptions } = options
|
||||
|
||||
setupMocks(mockOverrides)
|
||||
@@ -210,4 +210,4 @@ export function clearAllMocks() {
|
||||
}
|
||||
|
||||
// Export mock functions for external access
|
||||
export { defaultModalContext, mockUseModalContext, mockUseProviderContext }
|
||||
export { defaultModalContext, mockUseModalContext }
|
||||
|
||||
@@ -102,12 +102,12 @@ export type PeriodParamsWithTimeRange = {
|
||||
query?: TimeRange
|
||||
}
|
||||
|
||||
export type IBizChartProps = {
|
||||
type IBizChartProps = {
|
||||
period: PeriodParams
|
||||
id: string
|
||||
}
|
||||
|
||||
export type IChartProps = {
|
||||
type IChartProps = {
|
||||
className?: string
|
||||
basicInfo: { title: string, explanation: string, timePeriod: string }
|
||||
valueKey?: string
|
||||
@@ -508,5 +508,3 @@ export const AvgUserInteractions: FC<IBizChartProps> = ({ id, period }) => {
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export default Chart
|
||||
|
||||
@@ -29,7 +29,7 @@ import Link from '@/next/link'
|
||||
import { AppModeEnum } from '@/types/app'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
export type ISettingsModalProps = {
|
||||
type ISettingsModalProps = {
|
||||
isChat: boolean
|
||||
appInfo: AppDetailResponse & Partial<AppSSO>
|
||||
isShow: boolean
|
||||
|
||||
@@ -22,7 +22,7 @@ import {
|
||||
import { useAllTriggerPlugins } from '@/service/use-triggers'
|
||||
import { canFindTool } from '@/utils'
|
||||
|
||||
export type ITriggerCardProps = {
|
||||
type ITriggerCardProps = {
|
||||
appInfo: AppDetailResponse & Partial<AppSSO>
|
||||
onToggleResult?: (err: Error | null, message?: I18nKeysByPrefix<'common', 'actionMsg.'>) => void
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ import ResultTab from './result-tab'
|
||||
|
||||
const MAX_DEPTH = 3
|
||||
|
||||
export type IGenerationItemProps = {
|
||||
type IGenerationItemProps = {
|
||||
isWorkflow?: boolean
|
||||
workflowProcessData?: WorkflowProcess
|
||||
className?: string
|
||||
@@ -67,12 +67,6 @@ export type IGenerationItemProps = {
|
||||
inSidePanel?: boolean
|
||||
}
|
||||
|
||||
export const copyIcon = (
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9.3335 2.33341C9.87598 2.33341 10.1472 2.33341 10.3698 2.39304C10.9737 2.55486 11.4454 3.02657 11.6072 3.63048C11.6668 3.85302 11.6668 4.12426 11.6668 4.66675V10.0334C11.6668 11.0135 11.6668 11.5036 11.4761 11.8779C11.3083 12.2072 11.0406 12.4749 10.7113 12.6427C10.337 12.8334 9.84692 12.8334 8.86683 12.8334H5.1335C4.1534 12.8334 3.66336 12.8334 3.28901 12.6427C2.95973 12.4749 2.69201 12.2072 2.52423 11.8779C2.3335 11.5036 2.3335 11.0135 2.3335 10.0334V4.66675C2.3335 4.12426 2.3335 3.85302 2.39313 3.63048C2.55494 3.02657 3.02665 2.55486 3.63056 2.39304C3.8531 2.33341 4.12435 2.33341 4.66683 2.33341M5.60016 3.50008H8.40016C8.72686 3.50008 8.89021 3.50008 9.01499 3.4365C9.12475 3.38058 9.21399 3.29134 9.26992 3.18158C9.3335 3.05679 9.3335 2.89345 9.3335 2.56675V2.10008C9.3335 1.77338 9.3335 1.61004 9.26992 1.48525C9.21399 1.37549 9.12475 1.28625 9.01499 1.23033C8.89021 1.16675 8.72686 1.16675 8.40016 1.16675H5.60016C5.27347 1.16675 5.11012 1.16675 4.98534 1.23033C4.87557 1.28625 4.78634 1.37549 4.73041 1.48525C4.66683 1.61004 4.66683 1.77338 4.66683 2.10008V2.56675C4.66683 2.89345 4.66683 3.05679 4.73041 3.18158C4.78634 3.29134 4.87557 3.38058 4.98534 3.4365C5.11012 3.50008 5.27347 3.50008 5.60016 3.50008Z" stroke="#344054" strokeWidth="1.25" strokeLinecap="round" strokeLinejoin="round" />
|
||||
</svg>
|
||||
)
|
||||
|
||||
const GenerationItem: FC<IGenerationItemProps> = ({
|
||||
isWorkflow,
|
||||
workflowProcessData,
|
||||
|
||||
@@ -8,7 +8,7 @@ import * as React from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import Button from '@/app/components/base/button'
|
||||
|
||||
export type INoDataProps = {
|
||||
type INoDataProps = {
|
||||
onStartCreateContent: () => void
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
import { AppModeEnum } from '@/types/app'
|
||||
import { cn } from '@/utils/classnames'
|
||||
|
||||
export type AppSelectorProps = {
|
||||
type AppSelectorProps = {
|
||||
value: Array<AppModeEnum>
|
||||
onChange: (value: AppSelectorProps['value']) => void
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ const AccessControl = dynamic(() => import('@/app/components/app/app-access-cont
|
||||
ssr: false,
|
||||
})
|
||||
|
||||
export type AppCardProps = {
|
||||
type AppCardProps = {
|
||||
app: App
|
||||
onRefresh?: () => void
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ const CreateFromDSLModal = dynamic(() => import('@/app/components/app/create-fro
|
||||
ssr: false,
|
||||
})
|
||||
|
||||
export type CreateAppCardProps = {
|
||||
type CreateAppCardProps = {
|
||||
className?: string
|
||||
isLoading?: boolean
|
||||
onSuccess?: () => void
|
||||
|
||||
@@ -15,7 +15,7 @@ import { cn } from '@/utils/classnames'
|
||||
import ResultPanel from './result'
|
||||
import TracingPanel from './tracing'
|
||||
|
||||
export type AgentLogDetailProps = {
|
||||
type AgentLogDetailProps = {
|
||||
activeTab?: 'DETAIL' | 'TRACING'
|
||||
conversationID: string
|
||||
log: IChatItem
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
export { default } from './lazy-amplitude-provider'
|
||||
export { resetUser, setUserId, setUserProperties, trackEvent } from './utils'
|
||||
export { setUserId, setUserProperties, trackEvent } from './utils'
|
||||
|
||||
@@ -8,7 +8,7 @@ import { cn } from '@/utils/classnames'
|
||||
|
||||
init({ data })
|
||||
|
||||
export type AnswerIconProps = {
|
||||
type AnswerIconProps = {
|
||||
iconType?: AppIconType | null
|
||||
icon?: string | null
|
||||
background?: string | null
|
||||
|
||||
@@ -12,7 +12,7 @@ import { cn } from '@/utils/classnames'
|
||||
|
||||
init({ data })
|
||||
|
||||
export type AppIconProps = {
|
||||
type AppIconProps = {
|
||||
size?: 'xs' | 'tiny' | 'small' | 'medium' | 'large' | 'xl' | 'xxl'
|
||||
rounded?: boolean
|
||||
iconType?: AppIconType | null
|
||||
|
||||
@@ -24,11 +24,11 @@ export type AvatarProps = {
|
||||
onLoadingStatusChange?: (status: ImageLoadingStatus) => void
|
||||
}
|
||||
|
||||
export type AvatarRootProps = React.ComponentPropsWithRef<typeof BaseAvatar.Root> & {
|
||||
type AvatarRootProps = React.ComponentPropsWithRef<typeof BaseAvatar.Root> & {
|
||||
size?: AvatarSize
|
||||
}
|
||||
|
||||
export function AvatarRoot({
|
||||
function AvatarRoot({
|
||||
size = 'md',
|
||||
className,
|
||||
...props
|
||||
@@ -45,9 +45,9 @@ export function AvatarRoot({
|
||||
)
|
||||
}
|
||||
|
||||
export type AvatarImageProps = React.ComponentPropsWithRef<typeof BaseAvatar.Image>
|
||||
type AvatarImageProps = React.ComponentPropsWithRef<typeof BaseAvatar.Image>
|
||||
|
||||
export function AvatarImage({
|
||||
function AvatarImage({
|
||||
className,
|
||||
...props
|
||||
}: AvatarImageProps) {
|
||||
@@ -59,11 +59,11 @@ export function AvatarImage({
|
||||
)
|
||||
}
|
||||
|
||||
export type AvatarFallbackProps = React.ComponentPropsWithRef<typeof BaseAvatar.Fallback> & {
|
||||
type AvatarFallbackProps = React.ComponentPropsWithRef<typeof BaseAvatar.Fallback> & {
|
||||
size?: AvatarSize
|
||||
}
|
||||
|
||||
export function AvatarFallback({
|
||||
function AvatarFallback({
|
||||
size = 'md',
|
||||
className,
|
||||
...props
|
||||
|
||||
@@ -29,7 +29,7 @@ export const getInputKeys = (value: string) => {
|
||||
return res
|
||||
}
|
||||
|
||||
export type IBlockInputProps = {
|
||||
type IBlockInputProps = {
|
||||
value: string
|
||||
className?: string // wrapper class
|
||||
highLightClassName?: string // class for the highlighted text default is text-blue-500
|
||||
|
||||
@@ -97,7 +97,7 @@ const ChatWithHistory: FC<ChatWithHistoryProps> = ({
|
||||
)
|
||||
}
|
||||
|
||||
export type ChatWithHistoryWrapProps = {
|
||||
type ChatWithHistoryWrapProps = {
|
||||
installedAppInfo?: InstalledApp
|
||||
className?: string
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import Button from '@/app/components/base/button'
|
||||
import Input from '@/app/components/base/input'
|
||||
import Modal from '@/app/components/base/modal'
|
||||
|
||||
export type IRenameModalProps = {
|
||||
type IRenameModalProps = {
|
||||
isShow: boolean
|
||||
saveLoading: boolean
|
||||
name: string
|
||||
|
||||
@@ -26,5 +26,3 @@ export const ChatContext = createContext<ChatContextValue>({
|
||||
})
|
||||
|
||||
export const useChatContext = () => useContext(ChatContext)
|
||||
|
||||
export default ChatContext
|
||||
|
||||
@@ -4,7 +4,7 @@ import * as React from 'react'
|
||||
import { cn } from '@/utils/classnames'
|
||||
import s from './style.module.css'
|
||||
|
||||
export type ILoadingAnimProps = {
|
||||
type ILoadingAnimProps = {
|
||||
type: 'text' | 'avatar'
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,6 @@ export type SubmitAnnotationFunc = (
|
||||
content: string,
|
||||
) => Promise<any>
|
||||
|
||||
export type DisplayScene = 'web' | 'console'
|
||||
|
||||
export type ToolInfoInThought = {
|
||||
name: string
|
||||
label: string
|
||||
@@ -151,15 +149,6 @@ export type MessageReplace = {
|
||||
conversation_id: string
|
||||
}
|
||||
|
||||
export type AnnotationReply = {
|
||||
id: string
|
||||
task_id: string
|
||||
answer: string
|
||||
conversation_id: string
|
||||
annotation_id: string
|
||||
annotation_author_name: string
|
||||
}
|
||||
|
||||
export type InputForm = {
|
||||
type: InputVarType
|
||||
label: string
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
} from '../context'
|
||||
import { CssTransform } from '../theme/utils'
|
||||
|
||||
export type IHeaderProps = {
|
||||
type IHeaderProps = {
|
||||
isMobile?: boolean
|
||||
allowResetChat?: boolean
|
||||
customerIcon?: React.ReactNode
|
||||
|
||||
@@ -3,42 +3,16 @@ import type { FileEntity } from '@/app/components/base/file-uploader/types'
|
||||
import type { WorkflowRunningStatus } from '@/app/components/workflow/types'
|
||||
import type {
|
||||
ModelConfig,
|
||||
VisionSettings,
|
||||
} from '@/types/app'
|
||||
import type { HumanInputFilledFormData, HumanInputFormData, NodeTracing } from '@/types/workflow'
|
||||
|
||||
export type {
|
||||
Inputs,
|
||||
PromptVariable,
|
||||
|
||||
} from '@/models/debug'
|
||||
export type { VisionFile } from '@/types/app'
|
||||
|
||||
export { TransferMethod } from '@/types/app'
|
||||
|
||||
export type UserInputForm = {
|
||||
default: string
|
||||
label: string
|
||||
required: boolean
|
||||
variable: string
|
||||
}
|
||||
|
||||
export type UserInputFormTextInput = {
|
||||
'text-input': UserInputForm & {
|
||||
max_length: number
|
||||
}
|
||||
}
|
||||
|
||||
export type UserInputFormSelect = {
|
||||
select: UserInputForm & {
|
||||
options: string[]
|
||||
}
|
||||
}
|
||||
|
||||
export type UserInputFormParagraph = {
|
||||
paragraph: UserInputForm
|
||||
}
|
||||
|
||||
export type VisionConfig = VisionSettings
|
||||
|
||||
export type EnableType = {
|
||||
enabled: boolean
|
||||
}
|
||||
|
||||
@@ -9,13 +9,13 @@ import SearchMenu from '@/assets/search-menu.svg'
|
||||
import { cn } from '@/utils/classnames'
|
||||
import Button from '../button'
|
||||
|
||||
export type CheckboxListOption = {
|
||||
type CheckboxListOption = {
|
||||
label: string
|
||||
value: string
|
||||
disabled?: boolean
|
||||
}
|
||||
|
||||
export type CheckboxListProps = {
|
||||
type CheckboxListProps = {
|
||||
title?: string
|
||||
label?: string
|
||||
description?: string
|
||||
|
||||
@@ -17,5 +17,3 @@ export const DaysOfWeek = () => {
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default React.memo(DaysOfWeek)
|
||||
|
||||
@@ -126,7 +126,7 @@ export const convertTimezoneToOffsetStr = (timezone?: string) => {
|
||||
|
||||
export const isDayjsObject = (value: unknown): value is Dayjs => dayjs.isDayjs(value)
|
||||
|
||||
export type ToDayjsOptions = {
|
||||
type ToDayjsOptions = {
|
||||
timezone?: string
|
||||
format?: string
|
||||
formats?: string[]
|
||||
|
||||
@@ -21,7 +21,7 @@ const dividerVariants = cva('', {
|
||||
},
|
||||
})
|
||||
|
||||
export type DividerProps = {
|
||||
type DividerProps = {
|
||||
className?: string
|
||||
style?: CSSProperties
|
||||
} & VariantProps<typeof dividerVariants>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export { default as FileTypeIcon } from './file-type-icon'
|
||||
export { default as FileUploaderInAttachmentWrapper } from './file-uploader-in-attachment'
|
||||
export { default as FileItemInAttachment } from './file-uploader-in-attachment/file-item'
|
||||
|
||||
export { default as FileUploaderInChatInput } from './file-uploader-in-chat-input'
|
||||
export { default as FileItem } from './file-uploader-in-chat-input/file-item'
|
||||
|
||||
export { FileListInChatInput } from './file-uploader-in-chat-input/file-list'
|
||||
export { FileList } from './file-uploader-in-chat-input/file-list'
|
||||
|
||||
@@ -30,5 +30,3 @@ export const UserSchema = z.object({
|
||||
preferredContactMethod: ContactMethod,
|
||||
}),
|
||||
})
|
||||
|
||||
export type User = z.infer<typeof UserSchema>
|
||||
|
||||
@@ -14,9 +14,11 @@ import UploadMethodField from './components/field/upload-method'
|
||||
import VariableOrConstantInputField from './components/field/variable-selector'
|
||||
import Actions from './components/form/actions'
|
||||
|
||||
export const { fieldContext, useFieldContext, formContext, useFormContext }
|
||||
const { fieldContext, useFieldContext, formContext, useFormContext }
|
||||
= createFormHookContexts()
|
||||
|
||||
export { formContext, useFieldContext, useFormContext }
|
||||
|
||||
export const { useAppForm, withForm } = createFormHook({
|
||||
fieldComponents: {
|
||||
TextField,
|
||||
|
||||
@@ -82,8 +82,6 @@ export type FormSchema = {
|
||||
}
|
||||
}
|
||||
|
||||
export type FormValues = Record<string, any>
|
||||
|
||||
export type GetValuesOptions = {
|
||||
needTransformWhenSecretFieldIsPristine?: boolean
|
||||
needCheckValidatedValues?: boolean
|
||||
|
||||
@@ -9,16 +9,16 @@ export enum GaType {
|
||||
webapp = 'webapp',
|
||||
}
|
||||
|
||||
export const GA_MEASUREMENT_ID_ADMIN = 'G-DM9497FN4V'
|
||||
export const GA_MEASUREMENT_ID_WEBAPP = 'G-2MFWXK7WYT'
|
||||
export const COOKIEYES_SCRIPT_SRC = 'https://cdn-cookieyes.com/client_data/2a645945fcae53f8e025a2b1/script.js'
|
||||
const GA_MEASUREMENT_ID_ADMIN = 'G-DM9497FN4V'
|
||||
const GA_MEASUREMENT_ID_WEBAPP = 'G-2MFWXK7WYT'
|
||||
const COOKIEYES_SCRIPT_SRC = 'https://cdn-cookieyes.com/client_data/2a645945fcae53f8e025a2b1/script.js'
|
||||
|
||||
const gaIdMaps = {
|
||||
[GaType.admin]: GA_MEASUREMENT_ID_ADMIN,
|
||||
[GaType.webapp]: GA_MEASUREMENT_ID_WEBAPP,
|
||||
}
|
||||
|
||||
export type IGAProps = {
|
||||
type IGAProps = {
|
||||
gaType: GaType
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ export type IconData = {
|
||||
icon: AbstractNode
|
||||
}
|
||||
|
||||
export type IconBaseProps = {
|
||||
type IconBaseProps = {
|
||||
data: IconData
|
||||
className?: string
|
||||
onClick?: React.MouseEventHandler<SVGElement>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
export { default as BaichuanTextCn } from './BaichuanTextCn'
|
||||
export { default as Minimax } from './Minimax'
|
||||
export { default as MinimaxText } from './MinimaxText'
|
||||
export { default as Tongyi } from './Tongyi'
|
||||
export { default as TongyiText } from './TongyiText'
|
||||
export { default as TongyiTextCn } from './TongyiTextCn'
|
||||
export { default as Wxyy } from './Wxyy'
|
||||
export { default as WxyyText } from './WxyyText'
|
||||
export { default as WxyyTextCn } from './WxyyTextCn'
|
||||
@@ -1,12 +1,5 @@
|
||||
export { default as ArCube1 } from './ArCube1'
|
||||
export { default as Asterisk } from './Asterisk'
|
||||
export { default as AwsMarketplaceDark } from './AwsMarketplaceDark'
|
||||
export { default as AwsMarketplaceLight } from './AwsMarketplaceLight'
|
||||
export { default as Azure } from './Azure'
|
||||
export { default as Buildings } from './Buildings'
|
||||
export { default as Diamond } from './Diamond'
|
||||
|
||||
export { default as GoogleCloud } from './GoogleCloud'
|
||||
export { default as Group2 } from './Group2'
|
||||
export { default as Keyframe } from './Keyframe'
|
||||
export { default as Sparkles } from './Sparkles'
|
||||
export { default as SparklesSoft } from './SparklesSoft'
|
||||
|
||||
@@ -1,16 +1,9 @@
|
||||
export { default as D } from './D'
|
||||
export { default as DiagonalDividingLine } from './DiagonalDividingLine'
|
||||
export { default as Dify } from './Dify'
|
||||
export { default as Gdpr } from './Gdpr'
|
||||
export { default as Github } from './Github'
|
||||
export { default as Highlight } from './Highlight'
|
||||
export { default as Iso } from './Iso'
|
||||
|
||||
export { default as Line3 } from './Line3'
|
||||
export { default as Lock } from './Lock'
|
||||
export { default as MessageChatSquare } from './MessageChatSquare'
|
||||
export { default as MultiPathRetrieval } from './MultiPathRetrieval'
|
||||
|
||||
export { default as Notion } from './Notion'
|
||||
export { default as NTo1Retrieval } from './NTo1Retrieval'
|
||||
export { default as Soc2 } from './Soc2'
|
||||
|
||||
export { default as SparklesSoft } from './SparklesSoft'
|
||||
export { default as SparklesSoftAccent } from './SparklesSoftAccent'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export { default as ExternalKnowledgeBase } from './ExternalKnowledgeBase'
|
||||
export { default as General } from './General'
|
||||
export { default as Graph } from './Graph'
|
||||
|
||||
export { default as ParentChild } from './ParentChild'
|
||||
export { default as Qa } from './Qa'
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
export { default as File } from './File'
|
||||
export { default as OptionCardEffectBlue } from './OptionCardEffectBlue'
|
||||
export { default as OptionCardEffectBlueLight } from './OptionCardEffectBlueLight'
|
||||
export { default as OptionCardEffectOrange } from './OptionCardEffectOrange'
|
||||
export { default as OptionCardEffectPurple } from './OptionCardEffectPurple'
|
||||
export { default as OptionCardEffectTeal } from './OptionCardEffectTeal'
|
||||
export { default as SelectionMod } from './SelectionMod'
|
||||
export { default as Watercrawl } from './Watercrawl'
|
||||
|
||||
@@ -1,50 +1,14 @@
|
||||
export { default as Anthropic } from './Anthropic'
|
||||
export { default as AnthropicDark } from './AnthropicDark'
|
||||
export { default as AnthropicLight } from './AnthropicLight'
|
||||
export { default as AnthropicShortLight } from './AnthropicShortLight'
|
||||
export { default as AnthropicText } from './AnthropicText'
|
||||
export { default as Azureai } from './Azureai'
|
||||
export { default as AzureaiText } from './AzureaiText'
|
||||
export { default as AzureOpenaiService } from './AzureOpenaiService'
|
||||
export { default as AzureOpenaiServiceText } from './AzureOpenaiServiceText'
|
||||
export { default as Baichuan } from './Baichuan'
|
||||
export { default as BaichuanText } from './BaichuanText'
|
||||
export { default as Chatglm } from './Chatglm'
|
||||
export { default as ChatglmText } from './ChatglmText'
|
||||
export { default as Cohere } from './Cohere'
|
||||
export { default as CohereText } from './CohereText'
|
||||
|
||||
export { default as Deepseek } from './Deepseek'
|
||||
export { default as Gemini } from './Gemini'
|
||||
export { default as Gpt3 } from './Gpt3'
|
||||
export { default as Gpt4 } from './Gpt4'
|
||||
|
||||
export { default as Grok } from './Grok'
|
||||
export { default as Huggingface } from './Huggingface'
|
||||
export { default as HuggingfaceText } from './HuggingfaceText'
|
||||
export { default as HuggingfaceTextHub } from './HuggingfaceTextHub'
|
||||
export { default as IflytekSpark } from './IflytekSpark'
|
||||
export { default as IflytekSparkText } from './IflytekSparkText'
|
||||
export { default as IflytekSparkTextCn } from './IflytekSparkTextCn'
|
||||
export { default as Jina } from './Jina'
|
||||
export { default as JinaText } from './JinaText'
|
||||
export { default as Localai } from './Localai'
|
||||
export { default as LocalaiText } from './LocalaiText'
|
||||
export { default as Microsoft } from './Microsoft'
|
||||
export { default as OpenaiBlack } from './OpenaiBlack'
|
||||
export { default as OpenaiBlue } from './OpenaiBlue'
|
||||
export { default as OpenaiGreen } from './OpenaiGreen'
|
||||
|
||||
export { default as OpenaiSmall } from './OpenaiSmall'
|
||||
export { default as OpenaiTeal } from './OpenaiTeal'
|
||||
export { default as OpenaiText } from './OpenaiText'
|
||||
export { default as OpenaiTransparent } from './OpenaiTransparent'
|
||||
export { default as OpenaiViolet } from './OpenaiViolet'
|
||||
|
||||
export { default as OpenaiYellow } from './OpenaiYellow'
|
||||
export { default as Openllm } from './Openllm'
|
||||
export { default as OpenllmText } from './OpenllmText'
|
||||
export { default as Replicate } from './Replicate'
|
||||
export { default as ReplicateText } from './ReplicateText'
|
||||
|
||||
export { default as Tongyi } from './Tongyi'
|
||||
export { default as XorbitsInference } from './XorbitsInference'
|
||||
export { default as XorbitsInferenceText } from './XorbitsInferenceText'
|
||||
export { default as Zhipuai } from './Zhipuai'
|
||||
export { default as ZhipuaiText } from './ZhipuaiText'
|
||||
export { default as ZhipuaiTextCn } from './ZhipuaiTextCn'
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
export { default as Checked } from './Checked'
|
||||
@@ -1,5 +1,5 @@
|
||||
export { default as DefaultToolIcon } from './DefaultToolIcon'
|
||||
export { default as Icon3Dots } from './Icon3Dots'
|
||||
|
||||
export { default as Message3Fill } from './Message3Fill'
|
||||
export { default as RowStruct } from './RowStruct'
|
||||
export { default as Slack } from './Slack'
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
export { default as Google } from './Google'
|
||||
export { default as PartnerDark } from './PartnerDark'
|
||||
export { default as PartnerLight } from './PartnerLight'
|
||||
export { default as VerifiedDark } from './VerifiedDark'
|
||||
export { default as VerifiedLight } from './VerifiedLight'
|
||||
export { default as WebReader } from './WebReader'
|
||||
export { default as Wikipedia } from './Wikipedia'
|
||||
@@ -1,5 +1 @@
|
||||
export { default as DataSet } from './DataSet'
|
||||
export { default as Loading } from './Loading'
|
||||
export { default as Search } from './Search'
|
||||
export { default as ThoughtList } from './ThoughtList'
|
||||
export { default as WebReader } from './WebReader'
|
||||
|
||||
@@ -3,7 +3,7 @@ export { default as ApiAggregate } from './ApiAggregate'
|
||||
export { default as ArrowShape } from './ArrowShape'
|
||||
export { default as Chunk } from './Chunk'
|
||||
export { default as Collapse } from './Collapse'
|
||||
export { default as Divider } from './Divider'
|
||||
|
||||
export { default as Economic } from './Economic'
|
||||
export { default as FullTextSearch } from './FullTextSearch'
|
||||
export { default as GeneralChunk } from './GeneralChunk'
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
export { default as AlertTriangle } from './AlertTriangle'
|
||||
export { default as ThumbsDown } from './ThumbsDown'
|
||||
export { default as ThumbsUp } from './ThumbsUp'
|
||||
export { default as Warning } from './Warning'
|
||||
|
||||
@@ -3,7 +3,5 @@ export { default as ArrowUpRight } from './ArrowUpRight'
|
||||
export { default as ChevronDownDouble } from './ChevronDownDouble'
|
||||
export { default as ChevronRight } from './ChevronRight'
|
||||
export { default as ChevronSelectorVertical } from './ChevronSelectorVertical'
|
||||
export { default as IconR } from './IconR'
|
||||
|
||||
export { default as RefreshCcw01 } from './RefreshCcw01'
|
||||
export { default as RefreshCw05 } from './RefreshCw05'
|
||||
export { default as ReverseLeft } from './ReverseLeft'
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
export { default as AiText } from './AiText'
|
||||
export { default as ChatBot } from './ChatBot'
|
||||
export { default as ChatBotSlim } from './ChatBotSlim'
|
||||
export { default as CuteRobot } from './CuteRobot'
|
||||
|
||||
export { default as MessageCheckRemove } from './MessageCheckRemove'
|
||||
export { default as MessageFastPlus } from './MessageFastPlus'
|
||||
|
||||
@@ -1,14 +1,2 @@
|
||||
export { default as ArtificialBrain } from './ArtificialBrain'
|
||||
export { default as BarChartSquare02 } from './BarChartSquare02'
|
||||
export { default as BracketsX } from './BracketsX'
|
||||
export { default as CodeBrowser } from './CodeBrowser'
|
||||
export { default as Container } from './Container'
|
||||
export { default as Database01 } from './Database01'
|
||||
export { default as Database03 } from './Database03'
|
||||
export { default as FileHeart02 } from './FileHeart02'
|
||||
export { default as GitBranch01 } from './GitBranch01'
|
||||
export { default as PromptEngineering } from './PromptEngineering'
|
||||
export { default as PuzzlePiece01 } from './PuzzlePiece01'
|
||||
export { default as TerminalSquare } from './TerminalSquare'
|
||||
export { default as Variable } from './Variable'
|
||||
export { default as Webhooks } from './Webhooks'
|
||||
|
||||
@@ -1,8 +1 @@
|
||||
export { default as AlignLeft } from './AlignLeft'
|
||||
export { default as BezierCurve03 } from './BezierCurve03'
|
||||
export { default as Collapse } from './Collapse'
|
||||
export { default as Colors } from './Colors'
|
||||
export { default as ImageIndentLeft } from './ImageIndentLeft'
|
||||
export { default as LeftIndent02 } from './LeftIndent02'
|
||||
export { default as LetterSpacing01 } from './LetterSpacing01'
|
||||
export { default as TypeSquare } from './TypeSquare'
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
export { default as Copy } from './Copy'
|
||||
export { default as CopyCheck } from './CopyCheck'
|
||||
export { default as File02 } from './File02'
|
||||
|
||||
export { default as FileArrow01 } from './FileArrow01'
|
||||
export { default as FileCheck02 } from './FileCheck02'
|
||||
|
||||
export { default as FileDownload02 } from './FileDownload02'
|
||||
export { default as FilePlus01 } from './FilePlus01'
|
||||
export { default as FilePlus02 } from './FilePlus02'
|
||||
export { default as FileText } from './FileText'
|
||||
export { default as FileUpload } from './FileUpload'
|
||||
|
||||
export { default as Folder } from './Folder'
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
export { default as Balance } from './Balance'
|
||||
export { default as CoinsStacked01 } from './CoinsStacked01'
|
||||
|
||||
export { default as CreditsCoin } from './CreditsCoin'
|
||||
export { default as GoldCoin } from './GoldCoin'
|
||||
export { default as ReceiptList } from './ReceiptList'
|
||||
|
||||
export { default as Tag01 } from './Tag01'
|
||||
export { default as Tag03 } from './Tag03'
|
||||
|
||||
@@ -1,30 +1,19 @@
|
||||
export { default as AtSign } from './AtSign'
|
||||
export { default as Bookmark } from './Bookmark'
|
||||
export { default as Check } from './Check'
|
||||
export { default as CheckDone01 } from './CheckDone01'
|
||||
export { default as ChecklistSquare } from './ChecklistSquare'
|
||||
|
||||
export { default as CodeAssistant } from './CodeAssistant'
|
||||
export { default as DotsGrid } from './DotsGrid'
|
||||
export { default as Edit02 } from './Edit02'
|
||||
export { default as Edit04 } from './Edit04'
|
||||
export { default as Edit05 } from './Edit05'
|
||||
export { default as Hash02 } from './Hash02'
|
||||
export { default as InfoCircle } from './InfoCircle'
|
||||
|
||||
export { default as Link03 } from './Link03'
|
||||
export { default as LinkExternal02 } from './LinkExternal02'
|
||||
export { default as LogIn04 } from './LogIn04'
|
||||
|
||||
export { default as LogOut01 } from './LogOut01'
|
||||
export { default as LogOut04 } from './LogOut04'
|
||||
|
||||
export { default as MagicEdit } from './MagicEdit'
|
||||
export { default as Menu01 } from './Menu01'
|
||||
export { default as Pin01 } from './Pin01'
|
||||
|
||||
export { default as Pin02 } from './Pin02'
|
||||
export { default as Plus02 } from './Plus02'
|
||||
export { default as Refresh } from './Refresh'
|
||||
|
||||
export { default as SearchMenu } from './SearchMenu'
|
||||
export { default as Settings01 } from './Settings01'
|
||||
export { default as Settings04 } from './Settings04'
|
||||
export { default as Target04 } from './Target04'
|
||||
export { default as Upload03 } from './Upload03'
|
||||
export { default as UploadCloud01 } from './UploadCloud01'
|
||||
|
||||
export { default as X } from './X'
|
||||
|
||||
@@ -1,4 +1 @@
|
||||
export { default as AlignLeft01 } from './AlignLeft01'
|
||||
export { default as AlignRight01 } from './AlignRight01'
|
||||
export { default as Grid01 } from './Grid01'
|
||||
export { default as LayoutGrid02 } from './LayoutGrid02'
|
||||
|
||||
@@ -1,6 +1,2 @@
|
||||
export { default as Microphone01 } from './Microphone01'
|
||||
export { default as PlayCircle } from './PlayCircle'
|
||||
export { default as SlidersH } from './SlidersH'
|
||||
export { default as Speaker } from './Speaker'
|
||||
export { default as Stop } from './Stop'
|
||||
export { default as StopCircle } from './StopCircle'
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
export { default as BubbleX } from './BubbleX'
|
||||
export { default as Colors } from './Colors'
|
||||
|
||||
export { default as DragHandle } from './DragHandle'
|
||||
export { default as Env } from './Env'
|
||||
export { default as GlobalVariable } from './GlobalVariable'
|
||||
export { default as Icon3Dots } from './Icon3Dots'
|
||||
export { default as LongArrowLeft } from './LongArrowLeft'
|
||||
export { default as LongArrowRight } from './LongArrowRight'
|
||||
export { default as SearchMenu } from './SearchMenu'
|
||||
export { default as Tools } from './Tools'
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
export { default as CubeOutline } from './CubeOutline'
|
||||
@@ -1,4 +1,2 @@
|
||||
export { default as ClockFastForward } from './ClockFastForward'
|
||||
export { default as ClockPlay } from './ClockPlay'
|
||||
export { default as ClockPlaySlim } from './ClockPlaySlim'
|
||||
export { default as ClockRefresh } from './ClockRefresh'
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
export { default as User01 } from './User01'
|
||||
export { default as Users01 } from './Users01'
|
||||
@@ -1 +0,0 @@
|
||||
export { default as Stars02 } from './Stars02'
|
||||
@@ -1,4 +1,3 @@
|
||||
export { default as AnthropicText } from './AnthropicText'
|
||||
export { default as Generator } from './Generator'
|
||||
export { default as Group } from './Group'
|
||||
export { default as HourglassShape } from './HourglassShape'
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
export { default as GoldCoin } from './GoldCoin'
|
||||
export { default as Scales02 } from './Scales02'
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
export { default as ArrowDownDoubleLine } from './ArrowDownDoubleLine'
|
||||
export { default as ArrowDownRoundFill } from './ArrowDownRoundFill'
|
||||
export { default as ArrowUpDoubleLine } from './ArrowUpDoubleLine'
|
||||
export { default as ChevronDown } from './ChevronDown'
|
||||
export { default as HighPriority } from './HighPriority'
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user