xyflow change to flowgraam
This commit is contained in:
@@ -70,6 +70,7 @@ import {
|
||||
IMConversationServiceMode,
|
||||
Status,
|
||||
} from "@/lib/generated/enums"
|
||||
import { useWorkflowDefinitionHistory } from "../../ai-workflows/_components/use-workflow-definition-history"
|
||||
import { WorkflowEditor } from "../../ai-workflows/_components/workflow-editor"
|
||||
|
||||
type DirectToolItem = CreateAIAgentPayload["directTools"][number]
|
||||
@@ -88,25 +89,22 @@ type SectionKey =
|
||||
| "workflow"
|
||||
|
||||
const fallbackDefinition: AIWorkflowDefinition = {
|
||||
schemaVersion: 1,
|
||||
entryNodeId: "start_1",
|
||||
schemaVersion: 2,
|
||||
nodes: [
|
||||
{
|
||||
id: "start_1",
|
||||
type: "start",
|
||||
name: "开始",
|
||||
position: { x: 0, y: 80 },
|
||||
config: {},
|
||||
meta: { position: { x: 0, y: 80 } },
|
||||
data: { title: "开始", config: {}, inputsValues: {} },
|
||||
},
|
||||
{
|
||||
id: "end_1",
|
||||
type: "end",
|
||||
name: "结束",
|
||||
position: { x: 260, y: 80 },
|
||||
config: {},
|
||||
meta: { position: { x: 260, y: 80 } },
|
||||
data: { title: "结束", config: {}, inputsValues: {} },
|
||||
},
|
||||
],
|
||||
edges: [{ id: "edge_start_end", source: "start_1", target: "end_1" }],
|
||||
edges: [{ sourceNodeID: "start_1", targetNodeID: "end_1", sourcePortID: "edge_start_end" }],
|
||||
}
|
||||
|
||||
function toText(value: string | number | undefined | null) {
|
||||
@@ -156,8 +154,16 @@ export function AIAgentConfigWorkbench({
|
||||
const [selectedSkillIds, setSelectedSkillIds] = useState<number[]>([])
|
||||
const [directTools, setDirectTools] = useState<DirectToolItem[]>([])
|
||||
|
||||
const [definition, setDefinition] = useState<AIWorkflowDefinition>(fallbackDefinition)
|
||||
const [workflowEditorKey, setWorkflowEditorKey] = useState(0)
|
||||
const {
|
||||
definition,
|
||||
revision: workflowRevision,
|
||||
canUndo: canUndoWorkflow,
|
||||
canRedo: canRedoWorkflow,
|
||||
replace: replaceWorkflowHistory,
|
||||
update: updateWorkflowDefinition,
|
||||
undo: undoWorkflowDefinition,
|
||||
redo: redoWorkflowDefinition,
|
||||
} = useWorkflowDefinitionHistory(fallbackDefinition)
|
||||
|
||||
const [aiConfigs, setAIConfigs] = useState<AIConfig[]>([])
|
||||
const [knowledgeBases, setKnowledgeBases] = useState<KnowledgeBase[]>([])
|
||||
@@ -175,9 +181,8 @@ export function AIAgentConfigWorkbench({
|
||||
}, [agentId])
|
||||
|
||||
const replaceWorkflowDefinition = useCallback((nextDefinition: AIWorkflowDefinition) => {
|
||||
setDefinition(nextDefinition)
|
||||
setWorkflowEditorKey((current) => current + 1)
|
||||
}, [])
|
||||
replaceWorkflowHistory(nextDefinition)
|
||||
}, [replaceWorkflowHistory])
|
||||
|
||||
const loadData = useCallback(async () => {
|
||||
setLoading(true)
|
||||
@@ -811,10 +816,14 @@ export function AIAgentConfigWorkbench({
|
||||
|
||||
{activeSection === "workflow" ? (
|
||||
<WorkflowEditor
|
||||
key={workflowEditorKey}
|
||||
key={workflowRevision}
|
||||
definition={definition}
|
||||
nodeSpecs={nodeSpecs}
|
||||
onDefinitionChange={setDefinition}
|
||||
onDefinitionChange={updateWorkflowDefinition}
|
||||
onUndo={undoWorkflowDefinition}
|
||||
undoDisabled={!canUndoWorkflow || savingWorkflow || loading}
|
||||
onRedo={redoWorkflowDefinition}
|
||||
redoDisabled={!canRedoWorkflow || savingWorkflow || loading}
|
||||
onRestoreDefault={restoreDefaultWorkflow}
|
||||
restoreDefaultDisabled={savingWorkflow || loading}
|
||||
onValidate={validateWorkflowDraft}
|
||||
|
||||
Reference in New Issue
Block a user