diff --git a/web/src/pages/agent/components/background.tsx b/web/src/components/canvas/background.tsx
similarity index 100%
rename from web/src/pages/agent/components/background.tsx
rename to web/src/components/canvas/background.tsx
diff --git a/web/src/locales/en.ts b/web/src/locales/en.ts
index e0628433a..7b29800a3 100644
--- a/web/src/locales/en.ts
+++ b/web/src/locales/en.ts
@@ -116,7 +116,7 @@ export default {
generate: 'Generate',
raptor: 'Raptor',
processingType: 'Processing Type',
- dataPipeline: 'Data Pipeline',
+ dataPipeline: 'Ingestion pipeline',
operations: 'Operations',
taskId: 'Task ID',
duration: 'Duration',
@@ -284,11 +284,11 @@ export default {
fileFilter: 'File Filter',
setDefaultTip: '',
setDefault: 'Set as Default',
- eidtLinkDataPipeline: 'Edit Data Pipeline',
- linkPipelineSetTip: 'Manage data pipeline linkage with this dataset',
+ eidtLinkDataPipeline: 'Edit Ingestion pipeline',
+ linkPipelineSetTip: 'Manage Ingestion pipeline linkage with this dataset',
default: 'Default',
- dataPipeline: 'Data Pipeline',
- linkDataPipeline: 'Link Data Pipeline',
+ dataPipeline: 'Ingestion pipeline',
+ linkDataPipeline: 'Link Ingestion pipeline',
enableAutoGenerate: 'Enable Auto Generate',
teamPlaceholder: 'Please select a team.',
dataFlowPlaceholder: 'Please select a pipeline.',
@@ -1595,7 +1595,7 @@ This delimiter is used to split the input text into several text pieces echo of
createFromTemplate: 'Create from template',
importJsonFile: 'Import JSON file',
ceateAgent: 'Agent flow',
- createPipeline: 'Data pipeline',
+ createPipeline: 'Ingestion pipeline',
chooseAgentType: 'Choose Agent Type',
},
llmTools: {
@@ -1688,9 +1688,9 @@ This delimiter is used to split the input text into several text pieces echo of
To keep them, please click Rerun to re-run the current stage.
`,
changeStepModalConfirmText: 'Switch Anyway',
changeStepModalCancelText: 'Cancel',
- unlinkPipelineModalTitle: 'Unlink data pipeline',
+ unlinkPipelineModalTitle: 'Unlink Ingestion pipeline',
unlinkPipelineModalContent: `
- Once unlinked, this Dataset will no longer be connected to the current Data Pipeline.
+ Once unlinked, this Dataset will no longer be connected to the current Ingestion pipeline.
Files that are already being parsed will continue until completion
Files that are not yet parsed will no longer be processed
Are you sure you want to proceed?
`,
diff --git a/web/src/pages/agent/canvas/edge/index.tsx b/web/src/pages/agent/canvas/edge/index.tsx
index 3c39fbdac..5b66e5be8 100644
--- a/web/src/pages/agent/canvas/edge/index.tsx
+++ b/web/src/pages/agent/canvas/edge/index.tsx
@@ -102,7 +102,7 @@ function InnerButtonEdge({
...showHighlight,
...placeholderHighlightStyle,
}}
- className={cn('text-text-secondary')}
+ className={cn('text-text-disabled')}
/>
diff --git a/web/src/pages/agent/canvas/index.tsx b/web/src/pages/agent/canvas/index.tsx
index b36b9a6c5..e6fa087f3 100644
--- a/web/src/pages/agent/canvas/index.tsx
+++ b/web/src/pages/agent/canvas/index.tsx
@@ -1,4 +1,4 @@
-import { useIsDarkTheme, useTheme } from '@/components/theme-provider';
+import { useTheme } from '@/components/theme-provider';
import {
Tooltip,
TooltipContent,
@@ -19,7 +19,6 @@ import { NotebookPen } from 'lucide-react';
import { useCallback, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { ChatSheet } from '../chat/chat-sheet';
-import { AgentBackground } from '../components/background';
import {
AgentChatContext,
AgentChatLogContext,
@@ -42,6 +41,7 @@ import { useMoveNote } from '../hooks/use-move-note';
import { usePlaceholderManager } from '../hooks/use-placeholder-manager';
import { useDropdownManager } from './context';
+import { AgentBackground } from '@/components/canvas/background';
import Spotlight from '@/components/spotlight';
import {
useHideFormSheetOnNodeDeletion,
@@ -61,7 +61,6 @@ import { GenerateNode } from './node/generate-node';
import { InvokeNode } from './node/invoke-node';
import { IterationNode, IterationStartNode } from './node/iteration-node';
import { KeywordNode } from './node/keyword-node';
-import { LogicNode } from './node/logic-node';
import { MessageNode } from './node/message-node';
import NoteNode from './node/note-node';
import { PlaceholderNode } from './node/placeholder-node';
@@ -78,7 +77,6 @@ export const nodeTypes: NodeTypes = {
beginNode: BeginNode,
placeholderNode: PlaceholderNode,
relevantNode: RelevantNode,
- logicNode: LogicNode,
noteNode: NoteNode,
switchNode: SwitchNode,
generateNode: GenerateNode,
@@ -173,8 +171,6 @@ function AgentCanvas({ drawerVisible, hideDrawer }: IProps) {
}
};
- const isDarkTheme = useIsDarkTheme();
-
useHideFormSheetOnNodeDeletion({ hideFormDrawer });
const { visible, hideModal, showModal } = useSetModalState();
@@ -243,7 +239,7 @@ function AgentCanvas({ drawerVisible, hideDrawer }: IProps) {
>
{isHeadAgent && (
<>
-
+
)}
-
+ {isHeadAgent || (
+
+ )}
diff --git a/web/src/pages/agent/canvas/node/categorize-node.tsx b/web/src/pages/agent/canvas/node/categorize-node.tsx
index a54136b5a..f036cfbc9 100644
--- a/web/src/pages/agent/canvas/node/categorize-node.tsx
+++ b/web/src/pages/agent/canvas/node/categorize-node.tsx
@@ -3,8 +3,7 @@ import { ICategorizeNode } from '@/interfaces/database/flow';
import { NodeProps, Position } from '@xyflow/react';
import { get } from 'lodash';
import { memo } from 'react';
-import { NodeHandleId } from '../../constant';
-import { CommonHandle } from './handle';
+import { CommonHandle, LeftEndHandle } from './handle';
import { RightHandleStyle } from './handle-icon';
import NodeHeader from './node-header';
import { NodeWrapper } from './node-wrapper';
@@ -20,13 +19,7 @@ export function InnerCategorizeNode({
return (
-
+
@@ -41,7 +34,6 @@ export function InnerCategorizeNode({
{position.name}
{
@@ -47,7 +48,7 @@ export function CommonHandle({
showModal();
}}
>
-
+
{visible && (
{
@@ -62,3 +63,19 @@ export function CommonHandle({
);
}
+
+export function LeftEndHandle({
+ isConnectable,
+ ...props
+}: Omit) {
+ return (
+
+ );
+}
diff --git a/web/src/pages/agent/canvas/node/index.tsx b/web/src/pages/agent/canvas/node/index.tsx
index a1d48955b..ccd00b9ca 100644
--- a/web/src/pages/agent/canvas/node/index.tsx
+++ b/web/src/pages/agent/canvas/node/index.tsx
@@ -3,8 +3,8 @@ import { NodeProps, Position } from '@xyflow/react';
import { memo } from 'react';
import { NodeHandleId } from '../../constant';
import { needsSingleStepDebugging } from '../../utils';
-import { CommonHandle } from './handle';
-import { LeftHandleStyle, RightHandleStyle } from './handle-icon';
+import { CommonHandle, LeftEndHandle } from './handle';
+import { RightHandleStyle } from './handle-icon';
import NodeHeader from './node-header';
import { NodeWrapper } from './node-wrapper';
import { ToolBar } from './toolbar';
@@ -23,14 +23,7 @@ function InnerRagNode({
showRun={needsSingleStepDebugging(data.label)}
>
-
+
-
+
-
) {
- return (
-
-
-
-
-
-
-
- );
-}
-
-export const LogicNode = memo(InnerLogicNode);
diff --git a/web/src/pages/agent/canvas/node/message-node.tsx b/web/src/pages/agent/canvas/node/message-node.tsx
index 057845a63..cf6802757 100644
--- a/web/src/pages/agent/canvas/node/message-node.tsx
+++ b/web/src/pages/agent/canvas/node/message-node.tsx
@@ -1,35 +1,21 @@
import { IMessageNode } from '@/interfaces/database/flow';
-import { NodeProps, Position } from '@xyflow/react';
+import { NodeProps } from '@xyflow/react';
import { Flex } from 'antd';
import classNames from 'classnames';
import { get } from 'lodash';
import { memo } from 'react';
-import { NodeHandleId } from '../../constant';
-import { CommonHandle } from './handle';
-import { LeftHandleStyle } from './handle-icon';
+import { LeftEndHandle } from './handle';
import styles from './index.less';
import NodeHeader from './node-header';
import { NodeWrapper } from './node-wrapper';
import { ToolBar } from './toolbar';
-function InnerMessageNode({
- id,
- data,
- isConnectable = true,
- selected,
-}: NodeProps) {
+function InnerMessageNode({ id, data, selected }: NodeProps) {
const messages: string[] = get(data, 'form.messages', []);
return (
-
+
{/* 0,
})}
>
-
{messages.map((message, idx) => {
return (
diff --git a/web/src/pages/agent/canvas/node/node-wrapper.tsx b/web/src/pages/agent/canvas/node/node-wrapper.tsx
index ab53466ff..b26380d9b 100644
--- a/web/src/pages/agent/canvas/node/node-wrapper.tsx
+++ b/web/src/pages/agent/canvas/node/node-wrapper.tsx
@@ -7,7 +7,7 @@ export function NodeWrapper({ children, className, selected }: IProps) {
return (
-
+
diff --git a/web/src/pages/agent/canvas/node/switch-node.tsx b/web/src/pages/agent/canvas/node/switch-node.tsx
index b62e45adb..ea4b1cc83 100644
--- a/web/src/pages/agent/canvas/node/switch-node.tsx
+++ b/web/src/pages/agent/canvas/node/switch-node.tsx
@@ -2,10 +2,10 @@ import { Card, CardContent } from '@/components/ui/card';
import { ISwitchCondition, ISwitchNode } from '@/interfaces/database/flow';
import { NodeProps, Position } from '@xyflow/react';
import { memo, useCallback } from 'react';
-import { NodeHandleId, SwitchOperatorOptions } from '../../constant';
+import { SwitchOperatorOptions } from '../../constant';
import { LogicalOperatorIcon } from '../../form/switch-form';
import { useGetVariableLabelByValue } from '../../hooks/use-get-begin-query';
-import { CommonHandle } from './handle';
+import { CommonHandle, LeftEndHandle } from './handle';
import { RightHandleStyle } from './handle-icon';
import NodeHeader from './node-header';
import { NodeWrapper } from './node-wrapper';
@@ -66,13 +66,7 @@ function InnerSwitchNode({ id, data, selected }: NodeProps) {
return (
-
+
{positions.map((position, idx) => {
diff --git a/web/src/pages/agent/canvas/node/tool-node.tsx b/web/src/pages/agent/canvas/node/tool-node.tsx
index 42c7bf3b5..b5212f3ad 100644
--- a/web/src/pages/agent/canvas/node/tool-node.tsx
+++ b/web/src/pages/agent/canvas/node/tool-node.tsx
@@ -49,6 +49,7 @@ function InnerToolNode({
type="target"
position={Position.Top}
isConnectable={isConnectable}
+ className="!bg-accent-primary !size-2"
>
{tools.map((x) => (
diff --git a/web/src/pages/agent/canvas/node/toolbar.tsx b/web/src/pages/agent/canvas/node/toolbar.tsx
index a8b5cd13c..f36cfe2af 100644
--- a/web/src/pages/agent/canvas/node/toolbar.tsx
+++ b/web/src/pages/agent/canvas/node/toolbar.tsx
@@ -66,7 +66,7 @@ export function ToolBar({
return (
- {children}
+ {children}
diff --git a/web/src/pages/agent/constant.tsx b/web/src/pages/agent/constant.tsx
index 3079f3b1a..35a67cae4 100644
--- a/web/src/pages/agent/constant.tsx
+++ b/web/src/pages/agent/constant.tsx
@@ -69,7 +69,6 @@ export enum Operator {
AkShare = 'AkShare',
YahooFinance = 'YahooFinance',
Jin10 = 'Jin10',
- Concentrator = 'Concentrator',
TuShare = 'TuShare',
Note = 'Note',
Crawler = 'Crawler',
@@ -102,7 +101,6 @@ export const AgentOperatorList = [
Operator.RewriteQuestion,
Operator.KeywordExtract,
Operator.Switch,
- Operator.Concentrator,
Operator.Iteration,
Operator.WaitingDialogue,
Operator.Note,
@@ -129,9 +127,6 @@ export const componentMenuList = [
{
name: Operator.Switch,
},
- {
- name: Operator.Concentrator,
- },
{
name: Operator.Iteration,
},
@@ -544,8 +539,6 @@ export const initialJin10Values = {
...initialQueryBaseValues,
};
-export const initialConcentratorValues = {};
-
export const initialTuShareValues = {
token: 'xxx',
src: 'eastmoney',
@@ -824,7 +817,6 @@ export const RestrictedUpstreamMap = {
[Operator.AkShare]: [Operator.Begin],
[Operator.YahooFinance]: [Operator.Begin],
[Operator.Jin10]: [Operator.Begin],
- [Operator.Concentrator]: [Operator.Begin],
[Operator.TuShare]: [Operator.Begin],
[Operator.Crawler]: [Operator.Begin],
[Operator.Note]: [],
@@ -840,6 +832,7 @@ export const RestrictedUpstreamMap = {
[Operator.StringTransform]: [Operator.Begin],
[Operator.UserFillUp]: [Operator.Begin],
[Operator.Tool]: [Operator.Begin],
+ [Operator.Placeholder]: [Operator.Begin],
};
export const NodeMap = {
@@ -865,7 +858,6 @@ export const NodeMap = {
[Operator.SearXNG]: 'ragNode',
[Operator.ExeSQL]: 'ragNode',
[Operator.Switch]: 'switchNode',
- [Operator.Concentrator]: 'logicNode',
[Operator.WenCai]: 'ragNode',
[Operator.AkShare]: 'ragNode',
[Operator.YahooFinance]: 'ragNode',
@@ -908,7 +900,6 @@ export const BeginQueryTypeIconMap = {
export const NoDebugOperatorsList = [
Operator.Begin,
- Operator.Concentrator,
Operator.Message,
Operator.RewriteQuestion,
Operator.Switch,
diff --git a/web/src/pages/agent/form-sheet/form-config-map.tsx b/web/src/pages/agent/form-sheet/form-config-map.tsx
index 0f0cbde70..15ca5ffa3 100644
--- a/web/src/pages/agent/form-sheet/form-config-map.tsx
+++ b/web/src/pages/agent/form-sheet/form-config-map.tsx
@@ -136,9 +136,6 @@ export const FormConfigMap = {
[Operator.SearXNG]: {
component: SearXNGForm,
},
- [Operator.Concentrator]: {
- component: () => <>>,
- },
[Operator.Note]: {
component: () => <>>,
},
diff --git a/web/src/pages/agent/hooks.tsx b/web/src/pages/agent/hooks.tsx
index 1cb972c2f..77a53abb8 100644
--- a/web/src/pages/agent/hooks.tsx
+++ b/web/src/pages/agent/hooks.tsx
@@ -25,7 +25,6 @@ import {
initialBingValues,
initialCategorizeValues,
initialCodeValues,
- initialConcentratorValues,
initialCrawlerValues,
initialDeepLValues,
initialDuckValues,
@@ -124,7 +123,6 @@ export const useInitializeOperatorParams = () => {
[Operator.AkShare]: initialAkShareValues,
[Operator.YahooFinance]: initialYahooFinanceValues,
[Operator.Jin10]: initialJin10Values,
- [Operator.Concentrator]: initialConcentratorValues,
[Operator.TuShare]: initialTuShareValues,
[Operator.Note]: initialNoteValues,
[Operator.Crawler]: initialCrawlerValues,
@@ -140,6 +138,7 @@ export const useInitializeOperatorParams = () => {
[Operator.Tool]: {},
[Operator.UserFillUp]: initialUserFillUpValues,
[Operator.StringTransform]: initialStringTransformValues,
+ [Operator.Placeholder]: {},
};
}, [llmId]);
diff --git a/web/src/pages/agent/hooks/use-add-node.ts b/web/src/pages/agent/hooks/use-add-node.ts
index 58f487921..69a5b456b 100644
--- a/web/src/pages/agent/hooks/use-add-node.ts
+++ b/web/src/pages/agent/hooks/use-add-node.ts
@@ -18,7 +18,6 @@ import {
initialBingValues,
initialCategorizeValues,
initialCodeValues,
- initialConcentratorValues,
initialCrawlerValues,
initialDeepLValues,
initialDuckValues,
@@ -100,7 +99,6 @@ export const useInitializeOperatorParams = () => {
[Operator.AkShare]: initialAkShareValues,
[Operator.YahooFinance]: initialYahooFinanceValues,
[Operator.Jin10]: initialJin10Values,
- [Operator.Concentrator]: initialConcentratorValues,
[Operator.TuShare]: initialTuShareValues,
[Operator.Note]: initialNoteValues,
[Operator.Crawler]: initialCrawlerValues,
diff --git a/web/src/pages/agent/version-dialog/index.tsx b/web/src/pages/agent/version-dialog/index.tsx
index 9a0b9741c..1e61ee291 100644
--- a/web/src/pages/agent/version-dialog/index.tsx
+++ b/web/src/pages/agent/version-dialog/index.tsx
@@ -1,3 +1,5 @@
+import { AgentBackground } from '@/components/canvas/background';
+import Spotlight from '@/components/spotlight';
import { Button } from '@/components/ui/button';
import { Card, CardContent } from '@/components/ui/card';
import {
@@ -22,7 +24,6 @@ import { ArrowDownToLine } from 'lucide-react';
import { ReactNode, useCallback, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { nodeTypes } from '../canvas';
-import { AgentBackground } from '../components/background';
export function VersionDialog({
hideModal,
@@ -121,6 +122,7 @@ export function VersionDialog({
minZoom={0.1}
>
+
diff --git a/web/src/pages/data-flow/canvas/index.tsx b/web/src/pages/data-flow/canvas/index.tsx
index 07410897c..1023fe904 100644
--- a/web/src/pages/data-flow/canvas/index.tsx
+++ b/web/src/pages/data-flow/canvas/index.tsx
@@ -21,7 +21,6 @@ import '@xyflow/react/dist/style.css';
import { NotebookPen } from 'lucide-react';
import { memo, useCallback, useRef, useState } from 'react';
import { useTranslation } from 'react-i18next';
-import { AgentBackground } from '../components/background';
import { AgentInstanceContext, HandleContext } from '../context';
import FormSheet from '../form-sheet/next';
@@ -31,6 +30,8 @@ import { useBeforeDelete } from '../hooks/use-before-delete';
import { useMoveNote } from '../hooks/use-move-note';
import { useDropdownManager } from './context';
+import { AgentBackground } from '@/components/canvas/background';
+import Spotlight from '@/components/spotlight';
import { useRunDataflow } from '../hooks/use-run-dataflow';
import {
useHideFormSheetOnNodeDeletion,
@@ -263,6 +264,7 @@ function DataFlowCanvas({ drawerVisible, hideDrawer, showLogSheet }: IProps) {
onBeforeDelete={handleBeforeDelete}
>
+
diff --git a/web/src/pages/data-flow/components/background.tsx b/web/src/pages/data-flow/components/background.tsx
deleted file mode 100644
index cf7b18f45..000000000
--- a/web/src/pages/data-flow/components/background.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import { useIsDarkTheme } from '@/components/theme-provider';
-import { Background } from '@xyflow/react';
-
-export function AgentBackground() {
- const isDarkTheme = useIsDarkTheme();
-
- return (
-
- );
-}
diff --git a/web/src/pages/data-flow/version-dialog/index.tsx b/web/src/pages/data-flow/version-dialog/index.tsx
index 9a0b9741c..1e61ee291 100644
--- a/web/src/pages/data-flow/version-dialog/index.tsx
+++ b/web/src/pages/data-flow/version-dialog/index.tsx
@@ -1,3 +1,5 @@
+import { AgentBackground } from '@/components/canvas/background';
+import Spotlight from '@/components/spotlight';
import { Button } from '@/components/ui/button';
import { Card, CardContent } from '@/components/ui/card';
import {
@@ -22,7 +24,6 @@ import { ArrowDownToLine } from 'lucide-react';
import { ReactNode, useCallback, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { nodeTypes } from '../canvas';
-import { AgentBackground } from '../components/background';
export function VersionDialog({
hideModal,
@@ -121,6 +122,7 @@ export function VersionDialog({
minZoom={0.1}
>
+