@digitalsee-ai/rcs 1.0.16 → 1.1.1
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/components/digitalsee/workflow/Canvas/NextConfigModalWrapper.d.ts +1 -1
- package/dist/components/digitalsee/workflow/Canvas/actionItemToNodeData.d.ts +14 -0
- package/dist/components/digitalsee/workflow/Canvas/constants.d.ts +1 -14
- package/dist/components/digitalsee/workflow/Canvas/constants.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Canvas/hooks/classicNodeAddConnection.d.ts +31 -0
- package/dist/components/digitalsee/workflow/Canvas/hooks/classicNodeAddConnection.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Canvas/hooks/createNodeAddHandlerNext.d.ts +5 -16
- package/dist/components/digitalsee/workflow/Canvas/hooks/useNodeAddCallback.d.ts +5 -17
- package/dist/components/digitalsee/workflow/Canvas/hooks/useWorkflowCanvasState.d.ts +3 -1
- package/dist/components/digitalsee/workflow/Handles/CustomHandle.d.ts +3 -0
- package/dist/components/digitalsee/workflow/Handles/customHandleConnectable.d.ts +35 -0
- package/dist/components/digitalsee/workflow/Handles/customHandleConnectable.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Nodes/ActionNode.d.ts +1 -1
- package/dist/components/digitalsee/workflow/Nodes/ConditionNode.d.ts +1 -1
- package/dist/components/digitalsee/workflow/Nodes/NextNodeFactory.d.ts +2 -1
- package/dist/components/digitalsee/workflow/Nodes/NextNodes/NextBaseNode.d.ts +2 -1
- package/dist/components/digitalsee/workflow/Nodes/NodeFactory.d.ts +1 -1
- package/dist/components/digitalsee/workflow/Nodes/SuperBaseNode.d.ts +8 -3
- package/dist/components/digitalsee/workflow/Nodes/SwitchNode.d.ts +1 -1
- package/dist/components/digitalsee/workflow/Nodes/classicNodePackageNodes.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Nodes/classicNodePackagePortLayout.d.ts +23 -0
- package/dist/components/digitalsee/workflow/Nodes/classicNodePackagePortLayout.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Nodes/components/NextNodeOperations.d.ts +1 -1
- package/dist/components/digitalsee/workflow/Nodes/useClassicNodePackagePorts.d.ts +26 -0
- package/dist/components/digitalsee/workflow/Nodes/useClassicNodePackagePorts.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/NodesConfig/ActionNodeConfig/index.d.ts +2 -0
- package/dist/components/digitalsee/workflow/NodesConfig/NextNodeConfig/index.d.ts +4 -2
- package/dist/components/digitalsee/workflow/NodesConfig/components/FormFieldRenderer/index.d.ts +2 -0
- package/dist/components/digitalsee/workflow/NodesConfig/submitPayload.d.ts +23 -0
- package/dist/components/digitalsee/workflow/NodesConfig/submitPayload.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/components/ActionItem.d.ts +1 -1
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/components/EntryTypeSelector.d.ts +8 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/components/NodeCardList.d.ts +19 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/hooks/useActions.d.ts +2 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/hooks/useCategories.d.ts +7 -4
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/hooks/useConnectableNodeSelector.d.ts +40 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/hooks/useNavigation.d.ts +4 -2
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/hooks/useNavigation.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/hooks/useNodeActionState.d.ts +30 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/hooks/useNodeSelectorPresentation.d.ts +24 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/types.d.ts +26 -6
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/connectableActionLoader.d.ts +16 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/connectableActionLoader.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/connectableFallback.d.ts +2 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/connectableFallback.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/connectableQuery.d.ts +40 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/connectableQuery.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/connectableResponse.d.ts +35 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/connectableResponse.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/dataTransformers.d.ts +13 -2
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/filterEdgeInsertActions.d.ts +62 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/filterEdgeInsertActions.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/nodeAddContext.d.ts +26 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/nodeAddContext.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/queryParams.d.ts +18 -0
- package/dist/components/digitalsee/workflow/Panels/ModernNodeSelectorPanel/utils/queryParams.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/Panels/SimpleNodeSelectorPanel/index.d.ts +2 -1
- package/dist/components/digitalsee/workflow/api/connectable.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/api/connectable.types.d.ts +75 -0
- package/dist/components/digitalsee/workflow/api/dip.types.d.ts +38 -4
- package/dist/components/digitalsee/workflow/api/index.d.ts +11 -2
- package/dist/components/digitalsee/workflow/config/defaultCanvasEngineConfig.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/config/defaultNodeSelectorConfig.d.ts +9 -0
- package/dist/components/digitalsee/workflow/enums/canvas.d.ts +5 -2
- package/dist/components/digitalsee/workflow/enums/node.d.ts +4 -0
- package/dist/components/digitalsee/workflow/events/eventBus.d.ts +2 -12
- package/dist/components/digitalsee/workflow/hooks/use-nodes-interaction.d.ts +1 -1
- package/dist/components/digitalsee/workflow/hooks/usePanel.d.ts +3 -17
- package/dist/components/digitalsee/workflow/index.d.ts +2 -1
- package/dist/components/digitalsee/workflow/store/panelSlice.d.ts +122 -25
- package/dist/components/digitalsee/workflow/types/Node.d.ts +1 -1
- package/dist/components/digitalsee/workflow/types/NodeAddContext.d.ts +31 -0
- package/dist/components/digitalsee/workflow/types/engine.d.ts +17 -0
- package/dist/components/digitalsee/workflow/utils/classicNodeActionIdentity.d.ts +7 -0
- package/dist/components/digitalsee/workflow/utils/classicNodeActionIdentity.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/utils/classicNodePackageConnection.d.ts +28 -0
- package/dist/components/digitalsee/workflow/utils/classicNodePackageConnection.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/utils/classicNodePackageGraphValidation.d.ts +29 -0
- package/dist/components/digitalsee/workflow/utils/classicNodePackageGraphValidation.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/utils/compatiblePortSelection.d.ts +79 -0
- package/dist/components/digitalsee/workflow/utils/compatiblePortSelection.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/utils/mcpCanvas.d.ts +33 -0
- package/dist/components/digitalsee/workflow/utils/mcpCanvas.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/utils/nextNodeSchemaCache.d.ts +8 -0
- package/dist/components/digitalsee/workflow/utils/nodeDataFormatter.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/utils/portConnectionValidationMessages.d.ts +48 -0
- package/dist/components/digitalsee/workflow/utils/portConnectionValidationMessages.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/utils/portConnectionValidator.d.ts +66 -0
- package/dist/components/digitalsee/workflow/utils/portConnectionValidator.test.d.ts +1 -0
- package/dist/components/digitalsee/workflow/utils/workflowConnectionValidator.d.ts +20 -0
- package/dist/components/digitalsee/workflow/utils/workflowConnectionValidator.test.d.ts +1 -0
- package/dist/locales/en-US/link/flow.d.ts +22 -0
- package/dist/locales/en-US.d.ts +22 -0
- package/dist/locales/zh-CN/link/flow.d.ts +22 -0
- package/dist/locales/zh-CN.d.ts +22 -0
- package/dist/locales/zh-TW/link/flow.d.ts +22 -0
- package/dist/locales/zh-TW.d.ts +22 -0
- package/dist/rcs.css +1 -1
- package/dist/rcs.es.js +19972 -17600
- package/dist/rcs.es.js.map +1 -1
- package/dist/rcs.umd.js +60 -60
- package/dist/rcs.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { NodeTypeItem } from '../Panels/ModernNodeSelectorPanel/types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
sourceHandle?: string;
|
|
5
|
-
targetNodeId?: string;
|
|
6
|
-
targetHandle?: string;
|
|
7
|
-
position: {
|
|
8
|
-
x: number;
|
|
9
|
-
y: number;
|
|
10
|
-
};
|
|
11
|
-
trigger?: boolean;
|
|
12
|
-
edge?: any;
|
|
13
|
-
}
|
|
2
|
+
import { NodeAddInfo } from '../types/NodeAddContext';
|
|
3
|
+
export type { NodeAddInfo } from '../types/NodeAddContext';
|
|
14
4
|
export type NodeAddEvent = {
|
|
15
5
|
info: NodeAddInfo;
|
|
16
6
|
nodeType: NodeTypeItem;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { NodeMouseHandler, OnNodesChange } from '@xyflow/react';
|
|
2
1
|
import { NodeType } from '../types/Node';
|
|
2
|
+
import { NodeMouseHandler, OnNodesChange } from '@xyflow/react';
|
|
3
3
|
export declare const useNodesInteraction: () => {
|
|
4
4
|
autoSaveNum: number;
|
|
5
5
|
onNodeMouseEnter: NodeMouseHandler;
|
|
@@ -1,23 +1,9 @@
|
|
|
1
1
|
import { ActionItem } from '../Panels/ModernNodeSelectorPanel/types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
sourceHandle?: string;
|
|
5
|
-
targetNodeId?: string;
|
|
6
|
-
targetHandle?: string;
|
|
7
|
-
position?: {
|
|
8
|
-
x: number;
|
|
9
|
-
y: number;
|
|
10
|
-
};
|
|
11
|
-
edge?: any;
|
|
12
|
-
sourceNode?: any;
|
|
13
|
-
targetNode?: any;
|
|
14
|
-
trigger?: boolean;
|
|
15
|
-
protocol?: string;
|
|
16
|
-
refresh?: boolean;
|
|
17
|
-
}
|
|
2
|
+
import { NodeAddInfo } from '../types/NodeAddContext';
|
|
3
|
+
export type { NodeAddInfo } from '../types/NodeAddContext';
|
|
18
4
|
export declare function usePanel(): {
|
|
19
5
|
nodeSelectorVisible: boolean;
|
|
20
|
-
nodeAddInfo:
|
|
6
|
+
nodeAddInfo: NodeAddInfo;
|
|
21
7
|
openNodeSelector: (info: NodeAddInfo) => void;
|
|
22
8
|
closeNodeSelector: () => void;
|
|
23
9
|
handleNodeSelect: (nodeType: ActionItem) => void;
|
|
@@ -90,7 +90,8 @@ export interface DigitalseeWorkFlowProps {
|
|
|
90
90
|
/**
|
|
91
91
|
* 引擎模式
|
|
92
92
|
*
|
|
93
|
-
* @description 'classic'
|
|
93
|
+
* @description 'classic' 是当前 AI 连接流主路径,使用 ACM 后端,并兼容渲染
|
|
94
|
+
* nodepackage 节点的新版 NodeSchema 配置;'next' 是暂废保留的 DIP 直连分支。
|
|
94
95
|
* @default 'classic'
|
|
95
96
|
*/
|
|
96
97
|
engineMode?: EngineMode;
|
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
import { PayloadAction } from '@reduxjs/toolkit';
|
|
2
2
|
import { ActionItem, NodeTypeItem } from '../Panels/ModernNodeSelectorPanel/types';
|
|
3
|
-
|
|
4
|
-
sourceNodeId: string;
|
|
5
|
-
sourceHandle: string;
|
|
6
|
-
targetNodeId?: string;
|
|
7
|
-
targetHandle?: string;
|
|
8
|
-
position: {
|
|
9
|
-
x: number;
|
|
10
|
-
y: number;
|
|
11
|
-
};
|
|
12
|
-
trigger?: boolean;
|
|
13
|
-
protocol?: string;
|
|
14
|
-
}
|
|
3
|
+
import { NodeAddInfo } from '../types/NodeAddContext';
|
|
15
4
|
type NodeAddCallback = ((info: NodeAddInfo, nodeType: ActionItem) => void) | null;
|
|
16
5
|
export interface PanelState {
|
|
17
6
|
nodeSelectorVisible: boolean;
|
|
@@ -22,68 +11,176 @@ export declare const panelSlice: import('@reduxjs/toolkit').Slice<PanelState, {
|
|
|
22
11
|
openNodeSelector: (state: {
|
|
23
12
|
nodeSelectorVisible: boolean;
|
|
24
13
|
nodeAddInfo: {
|
|
25
|
-
sourceNodeId
|
|
26
|
-
sourceHandle
|
|
14
|
+
sourceNodeId?: string;
|
|
15
|
+
sourceHandle?: string;
|
|
27
16
|
targetNodeId?: string;
|
|
28
17
|
targetHandle?: string;
|
|
29
|
-
position
|
|
18
|
+
position?: {
|
|
30
19
|
x: number;
|
|
31
20
|
y: number;
|
|
32
21
|
};
|
|
22
|
+
edge?: {
|
|
23
|
+
id: string;
|
|
24
|
+
source: string;
|
|
25
|
+
target: string;
|
|
26
|
+
sourceHandle?: string | null;
|
|
27
|
+
sourceHandleId?: string | null;
|
|
28
|
+
targetHandle?: string | null;
|
|
29
|
+
targetHandleId?: string | null;
|
|
30
|
+
data?: {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
sourceNode?: {
|
|
35
|
+
data: {
|
|
36
|
+
[x: string]: unknown;
|
|
37
|
+
};
|
|
38
|
+
id: string;
|
|
39
|
+
type?: string;
|
|
40
|
+
};
|
|
41
|
+
targetNode?: {
|
|
42
|
+
data: {
|
|
43
|
+
[x: string]: unknown;
|
|
44
|
+
};
|
|
45
|
+
id: string;
|
|
46
|
+
type?: string;
|
|
47
|
+
};
|
|
33
48
|
trigger?: boolean;
|
|
34
49
|
protocol?: string;
|
|
50
|
+
refresh?: boolean;
|
|
35
51
|
};
|
|
36
52
|
nodeAddCallback: NodeAddCallback;
|
|
37
53
|
}, action: PayloadAction<NodeAddInfo>) => void;
|
|
38
54
|
closeNodeSelector: (state: {
|
|
39
55
|
nodeSelectorVisible: boolean;
|
|
40
56
|
nodeAddInfo: {
|
|
41
|
-
sourceNodeId
|
|
42
|
-
sourceHandle
|
|
57
|
+
sourceNodeId?: string;
|
|
58
|
+
sourceHandle?: string;
|
|
43
59
|
targetNodeId?: string;
|
|
44
60
|
targetHandle?: string;
|
|
45
|
-
position
|
|
61
|
+
position?: {
|
|
46
62
|
x: number;
|
|
47
63
|
y: number;
|
|
48
64
|
};
|
|
65
|
+
edge?: {
|
|
66
|
+
id: string;
|
|
67
|
+
source: string;
|
|
68
|
+
target: string;
|
|
69
|
+
sourceHandle?: string | null;
|
|
70
|
+
sourceHandleId?: string | null;
|
|
71
|
+
targetHandle?: string | null;
|
|
72
|
+
targetHandleId?: string | null;
|
|
73
|
+
data?: {
|
|
74
|
+
[x: string]: unknown;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
sourceNode?: {
|
|
78
|
+
data: {
|
|
79
|
+
[x: string]: unknown;
|
|
80
|
+
};
|
|
81
|
+
id: string;
|
|
82
|
+
type?: string;
|
|
83
|
+
};
|
|
84
|
+
targetNode?: {
|
|
85
|
+
data: {
|
|
86
|
+
[x: string]: unknown;
|
|
87
|
+
};
|
|
88
|
+
id: string;
|
|
89
|
+
type?: string;
|
|
90
|
+
};
|
|
49
91
|
trigger?: boolean;
|
|
50
92
|
protocol?: string;
|
|
93
|
+
refresh?: boolean;
|
|
51
94
|
};
|
|
52
95
|
nodeAddCallback: NodeAddCallback;
|
|
53
96
|
}) => void;
|
|
54
97
|
setNodeAddCallback: (state: {
|
|
55
98
|
nodeSelectorVisible: boolean;
|
|
56
99
|
nodeAddInfo: {
|
|
57
|
-
sourceNodeId
|
|
58
|
-
sourceHandle
|
|
100
|
+
sourceNodeId?: string;
|
|
101
|
+
sourceHandle?: string;
|
|
59
102
|
targetNodeId?: string;
|
|
60
103
|
targetHandle?: string;
|
|
61
|
-
position
|
|
104
|
+
position?: {
|
|
62
105
|
x: number;
|
|
63
106
|
y: number;
|
|
64
107
|
};
|
|
108
|
+
edge?: {
|
|
109
|
+
id: string;
|
|
110
|
+
source: string;
|
|
111
|
+
target: string;
|
|
112
|
+
sourceHandle?: string | null;
|
|
113
|
+
sourceHandleId?: string | null;
|
|
114
|
+
targetHandle?: string | null;
|
|
115
|
+
targetHandleId?: string | null;
|
|
116
|
+
data?: {
|
|
117
|
+
[x: string]: unknown;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
sourceNode?: {
|
|
121
|
+
data: {
|
|
122
|
+
[x: string]: unknown;
|
|
123
|
+
};
|
|
124
|
+
id: string;
|
|
125
|
+
type?: string;
|
|
126
|
+
};
|
|
127
|
+
targetNode?: {
|
|
128
|
+
data: {
|
|
129
|
+
[x: string]: unknown;
|
|
130
|
+
};
|
|
131
|
+
id: string;
|
|
132
|
+
type?: string;
|
|
133
|
+
};
|
|
65
134
|
trigger?: boolean;
|
|
66
135
|
protocol?: string;
|
|
136
|
+
refresh?: boolean;
|
|
67
137
|
};
|
|
68
138
|
nodeAddCallback: NodeAddCallback;
|
|
69
139
|
}, action: PayloadAction<NodeAddCallback>) => void;
|
|
70
140
|
executeNodeAddCallback: (state: {
|
|
71
141
|
nodeSelectorVisible: boolean;
|
|
72
142
|
nodeAddInfo: {
|
|
73
|
-
sourceNodeId
|
|
74
|
-
sourceHandle
|
|
143
|
+
sourceNodeId?: string;
|
|
144
|
+
sourceHandle?: string;
|
|
75
145
|
targetNodeId?: string;
|
|
76
146
|
targetHandle?: string;
|
|
77
|
-
position
|
|
147
|
+
position?: {
|
|
78
148
|
x: number;
|
|
79
149
|
y: number;
|
|
80
150
|
};
|
|
151
|
+
edge?: {
|
|
152
|
+
id: string;
|
|
153
|
+
source: string;
|
|
154
|
+
target: string;
|
|
155
|
+
sourceHandle?: string | null;
|
|
156
|
+
sourceHandleId?: string | null;
|
|
157
|
+
targetHandle?: string | null;
|
|
158
|
+
targetHandleId?: string | null;
|
|
159
|
+
data?: {
|
|
160
|
+
[x: string]: unknown;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
sourceNode?: {
|
|
164
|
+
data: {
|
|
165
|
+
[x: string]: unknown;
|
|
166
|
+
};
|
|
167
|
+
id: string;
|
|
168
|
+
type?: string;
|
|
169
|
+
};
|
|
170
|
+
targetNode?: {
|
|
171
|
+
data: {
|
|
172
|
+
[x: string]: unknown;
|
|
173
|
+
};
|
|
174
|
+
id: string;
|
|
175
|
+
type?: string;
|
|
176
|
+
};
|
|
81
177
|
trigger?: boolean;
|
|
82
178
|
protocol?: string;
|
|
179
|
+
refresh?: boolean;
|
|
83
180
|
};
|
|
84
181
|
nodeAddCallback: NodeAddCallback;
|
|
85
182
|
}, action: PayloadAction<NodeTypeItem>) => void;
|
|
86
183
|
}, "panel", "panel", import('@reduxjs/toolkit').SliceSelectors<PanelState>>;
|
|
87
|
-
export declare const openNodeSelector: import('@reduxjs/toolkit').
|
|
184
|
+
export declare const openNodeSelector: import('@reduxjs/toolkit').ActionCreatorWithNonInferrablePayload<"panel/openNodeSelector">, closeNodeSelector: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<"panel/closeNodeSelector">, setNodeAddCallback: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<(info: NodeAddInfo, nodeType: ActionItem) => void, "panel/setNodeAddCallback">, executeNodeAddCallback: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<NodeTypeItem, "panel/executeNodeAddCallback">;
|
|
88
185
|
declare const _default: import('@reduxjs/toolkit').Reducer<PanelState>;
|
|
89
186
|
export default _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Node } from '@xyflow/react';
|
|
2
|
+
/** 节点选择器只需保留 MCP 判定需要的轻量锚点信息,避免 Redux 声明泄漏 ReactFlow 样式类型。 */
|
|
3
|
+
export type NodeAddAnchorNode = Pick<Node, 'id' | 'type' | 'data'>;
|
|
4
|
+
/** 边上插入节点时保留的原边上下文。 */
|
|
5
|
+
export interface NodeAddEdgeContext {
|
|
6
|
+
id: string;
|
|
7
|
+
source: string;
|
|
8
|
+
target: string;
|
|
9
|
+
sourceHandle?: string | null;
|
|
10
|
+
sourceHandleId?: string | null;
|
|
11
|
+
targetHandle?: string | null;
|
|
12
|
+
targetHandleId?: string | null;
|
|
13
|
+
data?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
/** 节点选择器与节点创建回调共享的唯一新增上下文。 */
|
|
16
|
+
export interface NodeAddInfo {
|
|
17
|
+
sourceNodeId?: string;
|
|
18
|
+
sourceHandle?: string;
|
|
19
|
+
targetNodeId?: string;
|
|
20
|
+
targetHandle?: string;
|
|
21
|
+
position?: {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
};
|
|
25
|
+
edge?: NodeAddEdgeContext;
|
|
26
|
+
sourceNode?: NodeAddAnchorNode;
|
|
27
|
+
targetNode?: NodeAddAnchorNode;
|
|
28
|
+
trigger?: boolean;
|
|
29
|
+
protocol?: string;
|
|
30
|
+
refresh?: boolean;
|
|
31
|
+
}
|
|
@@ -18,6 +18,7 @@ export interface CanvasEngineConfig {
|
|
|
18
18
|
flowId: string;
|
|
19
19
|
engineMode?: EngineMode;
|
|
20
20
|
canvas: CanvasCoreConfig;
|
|
21
|
+
nodeSelector: NodeSelectorConfig;
|
|
21
22
|
nodeTypes: NodeTypesRegistryConfig;
|
|
22
23
|
edgeRules: EdgeRulesConfig;
|
|
23
24
|
toolbar: ToolbarConfig;
|
|
@@ -25,6 +26,20 @@ export interface CanvasEngineConfig {
|
|
|
25
26
|
httpClient?: HttpClient;
|
|
26
27
|
history?: HistoryNavigator;
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* NodePackage 可连线候选能力配置。
|
|
31
|
+
*
|
|
32
|
+
* 默认关闭,由 CLASSIC/ACM 宿主显式启用,便于在接口联调异常时快速回退旧候选链路。
|
|
33
|
+
*/
|
|
34
|
+
export interface NodeSelectorConnectableConfig {
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
scene: string;
|
|
37
|
+
fallbackToLegacy: boolean;
|
|
38
|
+
debug: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface NodeSelectorConfig {
|
|
41
|
+
connectable: NodeSelectorConnectableConfig;
|
|
42
|
+
}
|
|
28
43
|
type NativeReactFLowProps = ComponentProps<typeof ReactFlow>;
|
|
29
44
|
export interface RegisterComponents {
|
|
30
45
|
form: {
|
|
@@ -106,6 +121,8 @@ export interface EdgeConfig {
|
|
|
106
121
|
id?: string;
|
|
107
122
|
source: string;
|
|
108
123
|
target: string;
|
|
124
|
+
sourceHandle?: string | null;
|
|
125
|
+
targetHandle?: string | null;
|
|
109
126
|
data?: Record<string, any>;
|
|
110
127
|
}
|
|
111
128
|
export interface EdgeContext {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ActionItem } from '../Panels/ModernNodeSelectorPanel/types';
|
|
2
|
+
/**
|
|
3
|
+
* 解析 CLASSIC create-node API 使用的原始 Long action_id。
|
|
4
|
+
*
|
|
5
|
+
* NodePackage 的 UI key 通常是 actionKey,而后端 action id 可能为 0/负数;两者不可混用。
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveClassicCreateActionId(action: Pick<ActionItem, 'id' | 'backendActionId' | 'action_id'>): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DipNodeSchema } from '../api/dip';
|
|
2
|
+
import { PortConnectionEdge, PortConnectionValidationCode } from './portConnectionValidator';
|
|
3
|
+
import { Node } from '@xyflow/react';
|
|
4
|
+
export type ClassicNodePackageConnectionCode = PortConnectionValidationCode | 'NOT_APPLICABLE' | 'SCHEMA_NOT_READY';
|
|
5
|
+
export interface ClassicNodePackageConnectionResult {
|
|
6
|
+
applicable: boolean;
|
|
7
|
+
valid: boolean;
|
|
8
|
+
code: ClassicNodePackageConnectionCode;
|
|
9
|
+
reason: string;
|
|
10
|
+
missingSchemaNodeIds?: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface ValidateClassicNodePackageConnectionInput {
|
|
13
|
+
sourceNode?: Node | null;
|
|
14
|
+
targetNode?: Node | null;
|
|
15
|
+
sourceHandle?: string | null;
|
|
16
|
+
targetHandle?: string | null;
|
|
17
|
+
edges?: readonly PortConnectionEdge[];
|
|
18
|
+
}
|
|
19
|
+
/** 同步解析节点内联或已预加载的 CLASSIC nodepackage Schema。 */
|
|
20
|
+
export declare function resolveClassicNodePackageSchema(node?: Node | null): DipNodeSchema | null;
|
|
21
|
+
export declare function isClassicNodePackageNode(node?: Node | null): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* 校验两个 CLASSIC nodepackage 节点之间的端口连接。
|
|
24
|
+
*
|
|
25
|
+
* 混合 legacy/nodepackage 连接保留前端当前精确 handle 名称,并按后端虚拟端口契约
|
|
26
|
+
* 将 legacy 端口能力类型统一映射为 main。
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateClassicNodePackageConnection({ sourceNode, targetNode, sourceHandle, targetHandle, edges, }: ValidateClassicNodePackageConnectionInput): ClassicNodePackageConnectionResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { PortConnectionValidationCode } from './portConnectionValidator';
|
|
2
|
+
import { Edge, Node } from '@xyflow/react';
|
|
3
|
+
export type ClassicNodePackageGraphIssueCode = PortConnectionValidationCode | 'REQUIRED_INPUT_MISSING' | 'SCHEMA_NOT_READY';
|
|
4
|
+
export interface ClassicNodePackageGraphIssue {
|
|
5
|
+
code: ClassicNodePackageGraphIssueCode;
|
|
6
|
+
reason: string;
|
|
7
|
+
blocking: boolean;
|
|
8
|
+
nodeId?: string;
|
|
9
|
+
portName?: string;
|
|
10
|
+
edgeId?: string;
|
|
11
|
+
sourceNodeId?: string;
|
|
12
|
+
targetNodeId?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ClassicNodePackageGraphValidationResult {
|
|
15
|
+
valid: boolean;
|
|
16
|
+
issues: ClassicNodePackageGraphIssue[];
|
|
17
|
+
blockingIssues: ClassicNodePackageGraphIssue[];
|
|
18
|
+
missingSchemaNodeIds: string[];
|
|
19
|
+
}
|
|
20
|
+
interface ValidateClassicNodePackageGraphInput {
|
|
21
|
+
nodes: readonly Node[];
|
|
22
|
+
edges: readonly Edge[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 保存前检查当前已知的 CLASSIC nodepackage 端口约束。
|
|
26
|
+
* Schema 尚未加载属于非阻塞 warning,最终交给 ACM 后端兜底;已知非法端口则阻止保存。
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateClassicNodePackageGraph({ nodes, edges, }: ValidateClassicNodePackageGraphInput): ClassicNodePackageGraphValidationResult;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { DipNodeSchema } from '../api/dip.types';
|
|
2
|
+
import { PortConnectionEdge, PortConnectionNode, PortConnectionValidationCode } from './portConnectionValidator';
|
|
3
|
+
type SourceNodeSchema = Pick<DipNodeSchema, 'outputs'>;
|
|
4
|
+
type TargetNodeSchema = Pick<DipNodeSchema, 'inputs'>;
|
|
5
|
+
type InsertedNodeSchema = Pick<DipNodeSchema, 'inputs' | 'outputs'>;
|
|
6
|
+
export type CompatiblePortSelectionCode = 'COMPATIBLE_PORT_PAIR_FOUND' | 'SOURCE_PORTS_EMPTY' | 'TARGET_PORTS_EMPTY' | 'SOURCE_HANDLE_NOT_FOUND' | 'TARGET_HANDLE_NOT_FOUND' | 'NO_COMPATIBLE_PORT_PAIR';
|
|
7
|
+
/** 自动选端口的结构化结果;compatibleCount 大于 1 时调用方可记录歧义日志。 */
|
|
8
|
+
export interface CompatiblePortSelectionResult {
|
|
9
|
+
valid: boolean;
|
|
10
|
+
code: CompatiblePortSelectionCode;
|
|
11
|
+
reason: string;
|
|
12
|
+
sourceHandle: string | null;
|
|
13
|
+
targetHandle: string | null;
|
|
14
|
+
compatibleCount: number;
|
|
15
|
+
/** 未找到组合时记录首个候选的底层校验码,便于 UI 映射文案。 */
|
|
16
|
+
validationCode: PortConnectionValidationCode | null;
|
|
17
|
+
}
|
|
18
|
+
export interface SelectCompatiblePortPairInput {
|
|
19
|
+
sourceNode: PortConnectionNode;
|
|
20
|
+
targetNode: PortConnectionNode;
|
|
21
|
+
sourceSchema: SourceNodeSchema;
|
|
22
|
+
targetSchema: TargetNodeSchema;
|
|
23
|
+
edges?: readonly PortConnectionEdge[];
|
|
24
|
+
/** 已存在的源 handle;缺失时按 sourceSchema.outputs 顺序枚举。 */
|
|
25
|
+
sourceHandle?: string | null;
|
|
26
|
+
/** 已存在的目标 handle;缺失时按 targetSchema.inputs 顺序枚举。 */
|
|
27
|
+
targetHandle?: string | null;
|
|
28
|
+
}
|
|
29
|
+
export interface SelectSourceToNewCompatiblePortInput {
|
|
30
|
+
sourceNode: PortConnectionNode;
|
|
31
|
+
newNode: PortConnectionNode;
|
|
32
|
+
sourceSchema: SourceNodeSchema;
|
|
33
|
+
newNodeSchema: TargetNodeSchema;
|
|
34
|
+
sourceHandle: string | null | undefined;
|
|
35
|
+
edges?: readonly PortConnectionEdge[];
|
|
36
|
+
}
|
|
37
|
+
export interface SelectNewToTargetCompatiblePortInput {
|
|
38
|
+
newNode: PortConnectionNode;
|
|
39
|
+
targetNode: PortConnectionNode;
|
|
40
|
+
newNodeSchema: SourceNodeSchema;
|
|
41
|
+
targetSchema: TargetNodeSchema;
|
|
42
|
+
targetHandle: string | null | undefined;
|
|
43
|
+
edges?: readonly PortConnectionEdge[];
|
|
44
|
+
}
|
|
45
|
+
export type EdgeInsertPortSelectionCode = 'EDGE_INSERT_PORTS_FOUND' | 'SOURCE_TO_NEW_INCOMPATIBLE' | 'NEW_TO_TARGET_INCOMPATIBLE';
|
|
46
|
+
export interface EdgeInsertPortSelectionResult {
|
|
47
|
+
valid: boolean;
|
|
48
|
+
code: EdgeInsertPortSelectionCode;
|
|
49
|
+
reason: string;
|
|
50
|
+
/** 两段可选组合数的乘积。 */
|
|
51
|
+
compatibleCount: number;
|
|
52
|
+
sourceToNew: CompatiblePortSelectionResult;
|
|
53
|
+
newToTarget: CompatiblePortSelectionResult | null;
|
|
54
|
+
}
|
|
55
|
+
export interface SelectCompatiblePortsForEdgeInsertInput {
|
|
56
|
+
sourceNode: PortConnectionNode;
|
|
57
|
+
newNode: PortConnectionNode;
|
|
58
|
+
targetNode: PortConnectionNode;
|
|
59
|
+
sourceSchema: SourceNodeSchema;
|
|
60
|
+
newNodeSchema: InsertedNodeSchema;
|
|
61
|
+
targetSchema: TargetNodeSchema;
|
|
62
|
+
sourceHandle: string | null | undefined;
|
|
63
|
+
targetHandle: string | null | undefined;
|
|
64
|
+
edges?: readonly PortConnectionEdge[];
|
|
65
|
+
/** 插边成功后会替换的旧边;校验连接数时必须先排除。 */
|
|
66
|
+
replacedEdgeId?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 按 source outputs → target inputs 的 Schema 顺序枚举所有组合。
|
|
70
|
+
* 会继续扫描首个成功组合之后的候选,以便返回准确的 compatibleCount。
|
|
71
|
+
*/
|
|
72
|
+
export declare const selectCompatiblePortPair: ({ sourceNode, targetNode, sourceSchema, targetSchema, sourceHandle, targetHandle, edges, }: SelectCompatiblePortPairInput) => CompatiblePortSelectionResult;
|
|
73
|
+
/** 从已有输出端口增加新节点:仅枚举新节点 inputs。 */
|
|
74
|
+
export declare const selectSourceToNewCompatiblePort: ({ sourceNode, newNode, sourceSchema, newNodeSchema, sourceHandle, edges, }: SelectSourceToNewCompatiblePortInput) => CompatiblePortSelectionResult;
|
|
75
|
+
/** 从已有输入端口增加前置节点:仅枚举新节点 outputs。 */
|
|
76
|
+
export declare const selectNewToTargetCompatiblePort: ({ newNode, targetNode, newNodeSchema, targetSchema, targetHandle, edges, }: SelectNewToTargetCompatiblePortInput) => CompatiblePortSelectionResult;
|
|
77
|
+
/** 插边时同时选择 source→new 与 new→target 两段端口。 */
|
|
78
|
+
export declare const selectCompatiblePortsForEdgeInsert: ({ sourceNode, newNode, targetNode, sourceSchema, newNodeSchema, targetSchema, sourceHandle, targetHandle, edges, replacedEdgeId, }: SelectCompatiblePortsForEdgeInsertInput) => EdgeInsertPortSelectionResult;
|
|
79
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { HandleConnectionType } from '../types/Handle';
|
|
2
|
+
import { NodeProtocol } from '../types/NodeProtocol';
|
|
3
|
+
import { Edge, Node } from '@xyflow/react';
|
|
4
|
+
export declare const MCP_TRIGGER_CATEGORY = "MCP_TRIGGER";
|
|
5
|
+
export declare const MCP_CATEGORY_TYPE = "mcp_trigger";
|
|
6
|
+
export declare const MCP_ACTION_LINK_ID = "mcp-gateway";
|
|
7
|
+
export declare const MCP_CATALOG_PAGE_SIZE = 200;
|
|
8
|
+
export declare const MCP_ACTION_PAGE_SIZE = 10;
|
|
9
|
+
export declare const MCP_SERVER_PROTOCOL = NodeProtocol.MCP_SERVER;
|
|
10
|
+
export declare const MCP_MAX_TOOLS_PER_SERVER = 20;
|
|
11
|
+
export declare const MCP_TOOL_MAX_DOWNSTREAM = 1;
|
|
12
|
+
export declare const MCP_CANVAS_TARGET_HANDLE = "top";
|
|
13
|
+
export declare const MCP_RETURN_VARIABLE_ACTION_KEY = "dip.core.mcp.return-variable";
|
|
14
|
+
export declare const isMcpServerNode: (node?: Pick<Node, "type"> | null) => boolean;
|
|
15
|
+
export declare const isMcpToolNode: (node?: Pick<Node, "type"> | null) => boolean;
|
|
16
|
+
export declare const isMcpReturnVariableNode: (node?: (Pick<Node, "data"> & {
|
|
17
|
+
data?: Record<string, unknown>;
|
|
18
|
+
}) | null) => boolean;
|
|
19
|
+
export declare const isMcpCanvas: (nodes: Array<Pick<Node, "type">>) => boolean;
|
|
20
|
+
export declare const isMcpServerCanvas: (nodes: Array<Pick<Node, "type">>) => boolean;
|
|
21
|
+
export declare const markMcpServerCanvasNode: <T extends Node>(node: T) => T;
|
|
22
|
+
export declare const isMcpServerToolHandle: (handleId?: string | null) => handleId is HandleConnectionType.BUILTIN_MCP;
|
|
23
|
+
export declare const isMcpToolChainHandle: (handleId?: string | null) => handleId is "main" | HandleConnectionType.OUTPUT;
|
|
24
|
+
export declare const getDirectMcpToolCount: (serverId: string, nodes: Array<Pick<Node, "id" | "type">>, edges: Array<Pick<Edge, "source" | "target">>) => number;
|
|
25
|
+
export declare const canAddMoreMcpTools: (serverId: string, nodes: Array<Pick<Node, "id" | "type">>, edges: Array<Pick<Edge, "source" | "target">>) => boolean;
|
|
26
|
+
export declare const getMcpToolDownstreamCount: (toolId: string, edges: Array<Pick<Edge, "source" | "sourceHandle">>) => number;
|
|
27
|
+
export declare const canAddMcpToolDownstream: (toolId: string, edges: Array<Pick<Edge, "source" | "sourceHandle">>) => boolean;
|
|
28
|
+
export declare const isMcpServerToToolConnection: (sourceNode?: Pick<Node, "type"> | null, targetNode?: Pick<Node, "type"> | null, sourceHandle?: string | null) => boolean;
|
|
29
|
+
export declare const isMcpToolToExecutionConnection: (sourceNode?: Pick<Node, "id" | "type"> | null, targetNode?: Pick<Node, "id" | "type"> | null, sourceHandle?: string | null) => boolean;
|
|
30
|
+
export declare const getNodeTypeById: (nodes: Array<Pick<Node, "id" | "type">>, nodeId?: string | null) => string;
|
|
31
|
+
export declare const resolveMcpCanvasTargetHandle: (nodes: Array<Pick<Node, "type">>, fallback?: string | null) => string;
|
|
32
|
+
export declare const normalizeMcpCanvasEdge: <T extends Pick<Edge, "targetHandle">>(nodes: Array<Pick<Node, "type">>, edge: T) => T;
|
|
33
|
+
export declare const normalizeMcpCanvasEdges: <T extends Pick<Edge, "targetHandle">>(nodes: Array<Pick<Node, "type">>, edges: T[]) => T[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -2,5 +2,13 @@ import { DipNodeSchema } from '../api/dip';
|
|
|
2
2
|
export declare function clearNextNodeSchemaCache(): void;
|
|
3
3
|
export declare function setCachedNextNodeSchema(nodeKey: string, nodeVersion: number | undefined, schema: DipNodeSchema): void;
|
|
4
4
|
export declare function setCachedClassicNextNodeSchema(nodeKey: string, nodeVersion: number | undefined, schema: DipNodeSchema): void;
|
|
5
|
+
/**
|
|
6
|
+
* 同步读取已预加载的 CLASSIC nodepackage Schema,不触发网络请求。
|
|
7
|
+
*
|
|
8
|
+
* 手动拖线发生在 ReactFlow 的同步校验阶段,无法等待异步 Schema 请求;
|
|
9
|
+
* 因此画布加载/选择器转换阶段会先预热缓存,再由这里读取。缺失版本时与
|
|
10
|
+
* `getCachedClassicNextNodeSchema` 保持一致,按 ACM 版本 1 兜底。
|
|
11
|
+
*/
|
|
12
|
+
export declare function peekCachedClassicNextNodeSchema(nodeKey: string, nodeVersion?: number): DipNodeSchema | null;
|
|
5
13
|
export declare function getCachedClassicNextNodeSchema(nodeKey: string, nodeVersion?: number): Promise<DipNodeSchema | null>;
|
|
6
14
|
export declare function getCachedNextNodeSchema(nodeKey: string, nodeVersion?: number): Promise<DipNodeSchema | null>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { PortConnectionValidationResult } from './portConnectionValidator';
|
|
2
|
+
import { TranslateFn } from '../../../../locales';
|
|
3
|
+
/** 供选择器、自动连线和已有边检查复用的 connectable 界面文案。 */
|
|
4
|
+
export declare const CONNECTABLE_UI_MESSAGE_IDS: {
|
|
5
|
+
readonly categoryUnavailable: "link.flow.connectable.category_unavailable";
|
|
6
|
+
readonly connectorUnavailable: "link.flow.connectable.connector_unavailable";
|
|
7
|
+
readonly actionUnavailable: "link.flow.connectable.action_unavailable";
|
|
8
|
+
readonly loadFailed: "link.flow.connectable.load_failed";
|
|
9
|
+
readonly noCompatibleNodes: "link.flow.connectable.no_compatible_nodes";
|
|
10
|
+
readonly noCompatibleInput: "link.flow.connectable.no_compatible_input";
|
|
11
|
+
readonly noCompatibleOutput: "link.flow.connectable.no_compatible_output";
|
|
12
|
+
readonly noBidirectionalCompatiblePort: "link.flow.connectable.no_bidirectional_compatible_port";
|
|
13
|
+
readonly schemaUnavailable: "link.flow.connectable.schema_unavailable";
|
|
14
|
+
readonly existingEdgeInvalid: "link.flow.connectable.existing_edge_invalid";
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* 端口校验错误码与 RCS 内置文案的唯一映射。
|
|
18
|
+
*
|
|
19
|
+
* 使用 `satisfies` 保证校验器新增 code 时这里会产生类型错误,避免界面静默回退成中文
|
|
20
|
+
* `reason`。`reason` 仍保留给未知后端规则或版本不一致场景作运行时兜底。
|
|
21
|
+
*/
|
|
22
|
+
export declare const PORT_CONNECTION_VALIDATION_MESSAGE_IDS: {
|
|
23
|
+
readonly SOURCE_NODE_NOT_FOUND: "link.flow.connectable.validation.source_node_not_found";
|
|
24
|
+
readonly TARGET_NODE_NOT_FOUND: "link.flow.connectable.validation.target_node_not_found";
|
|
25
|
+
readonly SOURCE_PORT_NOT_FOUND: "link.flow.connectable.validation.source_port_not_found";
|
|
26
|
+
readonly TARGET_PORT_NOT_FOUND: "link.flow.connectable.validation.target_port_not_found";
|
|
27
|
+
readonly PORT_TYPE_MISMATCH: "link.flow.connectable.validation.port_type_mismatch";
|
|
28
|
+
readonly SOURCE_NODE_NOT_ALLOWED: "link.flow.connectable.validation.source_node_not_allowed";
|
|
29
|
+
readonly TARGET_NODE_NOT_ALLOWED: "link.flow.connectable.validation.target_node_not_allowed";
|
|
30
|
+
readonly SOURCE_NODE_DENIED: "link.flow.connectable.validation.source_node_denied";
|
|
31
|
+
readonly TARGET_NODE_DENIED: "link.flow.connectable.validation.target_node_denied";
|
|
32
|
+
readonly SOURCE_MAX_CONNECTIONS_REACHED: "link.flow.connectable.validation.source_max_connections_reached";
|
|
33
|
+
readonly TARGET_MAX_CONNECTIONS_REACHED: "link.flow.connectable.validation.target_max_connections_reached";
|
|
34
|
+
readonly SELF_CONNECTION_NOT_ALLOWED: "link.flow.connectable.validation.self_connection_not_allowed";
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* 将端口连接校验结果转为当前 locale 的用户文案。
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* const intl = useIntl();
|
|
42
|
+
* const text = formatPortConnectionValidationMessage(
|
|
43
|
+
* validationResult,
|
|
44
|
+
* (id, values) => intl.formatMessage({ id }, values),
|
|
45
|
+
* );
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare const formatPortConnectionValidationMessage: (result: PortConnectionValidationResult, translate: TranslateFn) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|