feat: 全新智能体功能

- 基于先进智能体框架,增加智能体编排功能
- 增加智能体聊天,并对接持久化
This commit is contained in:
2026-05-25 11:42:48 +08:00
parent 6c3d98eaac
commit 72df00f25b
168 changed files with 22045 additions and 400 deletions

View File

@@ -65,6 +65,14 @@
const readonly = options.readonly === true;
let canvasLocked = $state(readonly);
const hideBottomDock = options.hideBottomDock === true;
const hideEdgePanel = options.hideEdgePanel === true;
const hideMiniMap = options.hideMiniMap === true;
const hideNodePicker = options.hideNodePicker === true;
const nodesDraggable = options.nodesDraggable ?? !readonly;
const nodesConnectable = options.nodesConnectable ?? !readonly;
const elementsSelectable = options.elementsSelectable ?? !readonly;
const dropEnabled = options.dropEnabled ?? !readonly;
const connectionEnabled = nodesConnectable && !readonly;
const availableNodes = getAvailableNodes(options);
const onRunTest = options.onRunTest;
@@ -779,22 +787,22 @@
bind:nodes={store.getNodes, store.setNodes}
bind:edges={store.getEdges, store.setEdges}
bind:viewport={store.getViewport, store.setViewport}
nodesDraggable={!canvasLocked}
nodesConnectable={!canvasLocked}
elementsSelectable={!canvasLocked}
nodesDraggable={nodesDraggable && !canvasLocked}
nodesConnectable={nodesConnectable && !canvasLocked}
elementsSelectable={elementsSelectable && !canvasLocked}
panOnDrag={readonly ? true : !canvasLocked}
zoomOnScroll={readonly ? true : !canvasLocked}
zoomOnDoubleClick={readonly ? true : !canvasLocked}
ondrop={readonly ? undefined : onDrop}
ondragover={readonly ? undefined : onDragOver}
ondrop={dropEnabled ? onDrop : undefined}
ondragover={dropEnabled ? onDragOver : undefined}
isValidConnection={isValidConnection}
onconnectend={readonly ? undefined : onconnectend}
onconnectstart={readonly ? undefined : onconnectstart}
onconnect={readonly ? undefined : onconnect}
onconnectend={connectionEnabled ? onconnectend : undefined}
onconnectstart={connectionEnabled ? onconnectstart : undefined}
onconnect={connectionEnabled ? onconnect : undefined}
connectionRadius={50}
connectionLineComponent={FlowConnectionLine}
onedgeclick={(e) => {
if (readonly) {
if (readonly || hideEdgePanel) {
return;
}
showEdgePanel = true;
@@ -803,7 +811,7 @@
onbeforeconnect={(edge: any) => normalizeEdgeBeforeConnect(edge)}
ondelete={readonly ? undefined : onDelete}
onclick={(e) => {
if (readonly) {
if (readonly || hideEdgePanel) {
return;
}
const el = e.target as HTMLElement;
@@ -825,7 +833,9 @@
}}
>
<Background />
<MiniMap />
{#if !hideMiniMap}
<MiniMap />
{/if}
{#if showEdgePanel}
<Panel>
@@ -889,7 +899,7 @@
</Panel>
{/if}
</SvelteFlow>
{#if nodePickerVisible}
{#if nodePickerVisible && !hideNodePicker}
{#if pendingConnectionLine}
<svg class="node-picker-connection-line" width="100%" height="100%">
<FlowMarkerDefs id="tf-flow-inline-arrow-closed" />