wechen-agent-editor-v1 1.1.8 → 1.1.9

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/README.md CHANGED
@@ -79,7 +79,18 @@ export function AgentPage() {
79
79
  - **`exportBackendWorkflowJson(snapshot | flow, meta)`** → **`WechenBackendWorkflowJson`**(根字段 **`schemaVersion`** 当前为 **`"1"`**,与业务字段 **`version`** 区分)
80
80
  - **`importBackendWorkflowToFlow(dto)`** → **`WechenAgentFlowJson`**,再作为 **`initialFlow`** 或 **`ref.replaceFlow`** 回显
81
81
 
82
- **有损字段**:导出会去掉 RF 运行期字段与部分边样式;导入会按边 `id` 重新分配 `sourceHandle`/`targetHandle`。详见类型 **`WechenBackendWorkflowJson`** 的 JSDoc。
82
+ **边 `id`(删边 / 命令式 API)**:
83
+
84
+ - **`onSave` / `getSnapshot` / `flowJson`**:`edges[].id` 为画布稳定 id,**`ref.deleteEdge(edgeId)`** / **`getSelectedEdgeId()`** 应使用该 id。
85
+ - **后端 DTO**:`exportBackendWorkflowJson` **会写出** `edges[].id`(与画布一致);`importBackendWorkflowToFlow` **优先** 使用 DTO 中的 `id`,省略时按 `e-${source}-${target}-${index}` 合成。仅持久化 DTO 时,回灌后删边请用 **回灌后的** `flow.edges[].id`,勿沿用导出前的 id(除非 DTO 已含 `id` 且已往返)。
86
+ - 推荐:需要完整画布状态时优先存 **`snapshot.flow`** 或 **`flowJson`**;仅存 DTO 时务必带上 **`edges[].id`** 字段。
87
+
88
+ **有损字段**:导出会去掉 RF 运行期字段与部分边样式;导入会按边 `id` 分配 `sourceHandle`/`targetHandle`。详见类型 **`WechenBackendWorkflowJson`** 的 JSDoc。
89
+
90
+ **连线布局**:
91
+
92
+ - **`flowJson` / `getSnapshot`**:在 `edge.data` 中持久化 **`wechenSourceAttachSide` / `wechenTargetAttachSide`** 与 **`wechenPathOptions`**(`offset`、`borderRadius`),回显时 **优先使用存盘布局**,与编辑态一致。
93
+ - **后端 DTO**:`edges[].layout` 可选携带上述字段(`exportBackendWorkflowJson` / `importBackendWorkflowToFlow`);若需 **完整** 画布状态(含全部 `edge.data`),请优先持久化 **`flowJson`** 而非仅 DTO 拓扑。
83
94
 
84
95
  **节点类型映射**(画布 ↔ DTO):
85
96
 
@@ -139,8 +150,8 @@ WechenAgentEditor(编排) → onSave / exportBackendWorkflowJson → 宿主
139
150
 
140
151
  - **`onTestRun` / `ref.testRun()`**:仅触发宿主回调,具体执行由宿主实现。
141
152
  - **`validateWechenAgentFlow(flow)`**:纯函数图校验(默认不阻断保存);可在 `onBeforeSave` 内返回 `false` 拦截。
142
- - **ref 增删改查**:`getSnapshot` / `patchNodeData` / `removeNode` / `addNode` / `addNodeFromLibrary` / `addEdge` / `connect` / `replaceFlow` / `relayoutEdges`(见 `WechenAgentEditorRef`)。
143
- - **回显后连线布局**:`initialFlow` `replaceFlow` **自动** 按当前节点几何重算感应锚边(`wechenSourceAttachSide` / `wechenTargetAttachSide`)并刷新 Handle;**不** 持久化路径折角/偏移。存盘锚边若与几何不一致会被覆盖。高级场景可调用 `ref.relayoutEdges()`(`readOnly` / `readingMode` 下 no-op)。
153
+ - **ref 增删改查**:`getSnapshot` / **`getFlow` / `getInitialFlow`**(与 **`initialFlow` 同形**)/ **`replaceFlow` / `setInitialFlow`** / `patchNodeData` / `removeNode` / **`removeEdge` / `deleteEdge`** / `addNode` / `addNodeFromLibrary` / `addEdge` / `connect` / `relayoutEdges`(见 `WechenAgentEditorRef`)。
154
+ - **回显后连线布局**:`getSnapshot` / `flowJson` 会保存 **`wechenSourceAttachSide` / `wechenTargetAttachSide` / `wechenPathOptions`**;`initialFlow` `replaceFlow` **优先恢复** 存盘布局。无快照的旧数据仍会自动推导;`ref.relayoutEdges()` 可按当前几何 **强制重算并写回**(`readOnly` / `readingMode` 下 no-op)。
144
155
 
145
156
  ```tsx
146
157
  import { validateWechenAgentFlow } from "wechen-agent-editor-v1";
@@ -254,6 +265,11 @@ antd 5 为 CSS-in-JS,请用 **`ConfigProvider`** 包裹应用(与官方用
254
265
  | `--wechen-node-border-color` | `#d9d9d9` | 未选中节点边框 |
255
266
  | `--wechen-edge-stroke` | `#b1b1b7` | 未选中边描边 |
256
267
  | `--wechen-edge-stroke-selected-width` | `2` | 选中边线宽 |
268
+ | `--wechen-zone-strip-border-color` | `rgba(22, 119, 255, 0.55)` | 四边感应条 hover 描边色 |
269
+ | `--wechen-zone-strip-background` | `rgba(22, 119, 255, 0.06)` | 四边感应条 hover 背景色 |
270
+ | `--wechen-zone-strip-border-width` | `2px` | 感应条 hover 描边宽度 |
271
+
272
+ 四边感应条稳定类名:`wechen-agent-zone-strip`(基类)、`wechen-agent-zone-strip--top` / `--right` / `--bottom` / `--left`(边向)、`wechen-agent-zone-strip--active`(当前边 hover)。宿主可直接写选择器覆盖,或与上表变量一并设置在 `.wechen-agent-editor` 上。
257
273
 
258
274
  ```css
259
275
  /* 例:自定义顶栏背景 */
@@ -265,6 +281,12 @@ antd 5 为 CSS-in-JS,请用 **`ConfigProvider`** 包裹应用(与官方用
265
281
  .my-app .wechen-agent-editor {
266
282
  --wechen-selection-color: #1677ff;
267
283
  }
284
+
285
+ /* 例:四边感应条 hover 色 */
286
+ .my-app .wechen-agent-editor {
287
+ --wechen-zone-strip-border-color: #1677ff;
288
+ --wechen-zone-strip-background: rgba(22, 119, 255, 0.12);
289
+ }
268
290
  ```
269
291
 
270
292
  ### 国际化(壳层 vs 宿主自定义)
@@ -390,7 +412,7 @@ const libraryGroups = [
390
412
 
391
413
  非内置 **`type`** 使用与 **`card`** 相同的通用节点外壳与四边感应区;缺 **`item.type`** 时拖放会提示且不会创建节点。宿主可在加载配置后调用 **`validateComponentLibraryGroups(libraryGroups)`** 预检缺 `type` 的条目。
392
414
 
393
- **`renderFlowNode(props, context)`**:**`props.type`** = 落盘 **`item.type`**(**不是** `item.key`);**`context`** 含 **`selected`**、可选 **`libraryGroupKey`** / **`libraryItemKey`**。四边感应与接线桩仍由包渲染,**勿** 在返回值内放置 **`Handle`**。类型见 **`WechenAgentRenderFlowNodeContext`**、**`resolveLibraryItemNodeType`**、**`findComponentLibraryItem`** 等导出。
415
+ **`renderFlowNode(props, context)`**:**`props.type`** = 落盘 **`item.type`**(**不是** `item.key`);**`context`** 含 **`selected`**、可选 **`libraryGroupKey`** / **`libraryItemKey`**、**`editorRef`**(编辑器内部命令式 API;**不依赖** 宿主是否写 `<WechenAgentEditor ref={...} />`,在点击等事件内读 `current`)。宿主侧自动化/保存等 **仍建议** 挂 `ref`。四边感应与接线桩仍由包渲染,**勿** 在返回值内放置 **`Handle`**。类型见 **`WechenAgentRenderFlowNodeContext`**、**`resolveLibraryItemNodeType`**、**`findComponentLibraryItem`** 等导出。
394
416
 
395
417
  ### Monaco Worker
396
418
 
@@ -413,6 +435,7 @@ const libraryGroups = [
413
435
  | API | 签名 | 使用场景 |
414
436
  |-----|------|----------|
415
437
  | **`ctx.patchNode`** | `(patch) => void` | **`renderConfigPanel`** 选中节点时;**勿传 `node.id`**,当前节点已固定 |
438
+ | **`ctx.editorRef`** | `RefObject<WechenAgentEditorRef \| null>` | **`renderConfigPanel`** 节点/边共有;内部 API,**无需** 宿主挂 `ref`,在事件内读 `current` |
416
439
  | **`ref.patchNodeData`** | `(nodeId, patch) => void` | 命令式改任意节点(按钮、自动化、跨节点批量) |
417
440
 
418
441
  **`patch` 的顶层键 = `node.data` 的键**,不是整颗 React Flow `Node`(不含 `id` / `type` / `position` / `measured` 等)。
@@ -1 +1 @@
1
- {"version":3,"file":"WechenAgentEditor.d.ts","sourceRoot":"","sources":["../src/WechenAgentEditor.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAa,SAAS,EAAa,MAAM,OAAO,CAAC;AAc5E,OAAO,KAAK,EACV,qBAAqB,EACrB,+BAA+B,EAChC,MAAM,iCAAiC,CAAC;AA6BzC,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,qCAAqC,EACrC,qCAAqC,EACrC,mBAAmB,EAEnB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAK/E,OAAO,KAAK,EACV,+BAA+B,EAC/B,kCAAkC,EACnC,MAAM,8BAA8B,CAAC;AAMtC,iEAAiE;AAEjE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,6BAA6B,KAAK,MAAM,CAAC;AAEtF,MAAM,WAAW,sBAAsB;IACrC,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,6EAA6E;IAC7E,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CACxB,IAAI,EAAE,+BAA+B,KAClC,+BAA+B,CAAC;IACrC;;;OAGG;IACH,cAAc,CAAC,EAAE,2BAA2B,CAAC;IAC7C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;IACjD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,8BAA8B,CAAC;IACnD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,qCAAqC,KAAK,SAAS,CAAC;IAChF;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,qCAAqC,KAAK,SAAS,CAAC;IAChF,iEAAiE;IACjE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjD,wEAAwE;IACxE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,+BAA+B,CAAC;IACjD,kEAAkE;IAClE,eAAe,CAAC,EAAE,kCAAkC,CAAC;IACrD,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,GAAG,wBAAwB,CAAC;CACtD;AAED,YAAY,EACV,+BAA+B,EAC/B,kCAAkC,GACnC,MAAM,8BAA8B,CAAC;AA8zBtC,eAAO,MAAM,iBAAiB,yHA2F7B,CAAC"}
1
+ {"version":3,"file":"WechenAgentEditor.d.ts","sourceRoot":"","sources":["../src/WechenAgentEditor.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAcjE,OAAO,KAAK,EACV,qBAAqB,EACrB,+BAA+B,EAChC,MAAM,iCAAiC,CAAC;AA6BzC,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,qCAAqC,EACrC,qCAAqC,EACrC,mBAAmB,EAEnB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAK/E,OAAO,KAAK,EACV,+BAA+B,EAC/B,kCAAkC,EACnC,MAAM,8BAA8B,CAAC;AAMtC,iEAAiE;AAEjE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,6BAA6B,KAAK,MAAM,CAAC;AAEtF,MAAM,WAAW,sBAAsB;IACrC,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,6EAA6E;IAC7E,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CACxB,IAAI,EAAE,+BAA+B,KAClC,+BAA+B,CAAC;IACrC;;;OAGG;IACH,cAAc,CAAC,EAAE,2BAA2B,CAAC;IAC7C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;IACjD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,8BAA8B,CAAC;IACnD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,qCAAqC,KAAK,SAAS,CAAC;IAChF;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,qCAAqC,KAAK,SAAS,CAAC;IAChF,iEAAiE;IACjE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjD,wEAAwE;IACxE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,+BAA+B,CAAC;IACjD,kEAAkE;IAClE,eAAe,CAAC,EAAE,kCAAkC,CAAC;IACrD,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,GAAG,wBAAwB,CAAC;CACtD;AAED,YAAY,EACV,+BAA+B,EAC/B,kCAAkC,GACnC,MAAM,8BAA8B,CAAC;AAq2BtC,eAAO,MAAM,iBAAiB,yHA2F7B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { NodeProps } from '@xyflow/react';
2
- import { ReactNode } from 'react';
2
+ import { ReactNode, RefObject } from 'react';
3
+ import { WechenAgentEditorRef } from './flowTypes';
3
4
  export type WechenAgentRenderFlowNodeContext = {
4
5
  /** 当前节点是否被画布选中(与 NodeProps.selected 一致) */
5
6
  selected: boolean;
@@ -7,6 +8,10 @@ export type WechenAgentRenderFlowNodeContext = {
7
8
  libraryGroupKey?: string;
8
9
  /** 拖入时库项 `item.key`(非 `props.type`) */
9
10
  libraryItemKey?: string;
11
+ /**
12
+ * 与 `<WechenAgentEditor ref={...} />` 为同一 ref 对象;在点击等事件内使用 `current`。
13
+ */
14
+ editorRef: RefObject<WechenAgentEditorRef | null>;
10
15
  };
11
16
  /**
12
17
  * 自定义画布节点 **内容区**(字段展示、样式与选中/激活视觉)。
@@ -18,6 +23,8 @@ export type WechenAgentRenderFlowNodeFn = (props: NodeProps, context: WechenAgen
18
23
  export interface WechenAgentEditorRenderContextValue {
19
24
  /** 自定义节点内容区;未设置时使用内置默认字段块 */
20
25
  renderFlowNode?: WechenAgentRenderFlowNodeFn;
26
+ /** 编辑器命令式 ref,供默认节点调用宿主 `renderFlowNode` 时传入 context */
27
+ editorRef: RefObject<WechenAgentEditorRef | null>;
21
28
  }
22
29
  export declare const WechenAgentEditorRenderContext: import('react').Context<WechenAgentEditorRenderContextValue | null>;
23
30
  export declare function useWechenAgentEditorRender(): WechenAgentEditorRenderContextValue;
@@ -1 +1 @@
1
- {"version":3,"file":"WechenAgentEditorContext.d.ts","sourceRoot":"","sources":["../src/WechenAgentEditorContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,gCAAgC,GAAG;IAC7C,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,+DAA+D;AAC/D,MAAM,MAAM,2BAA2B,GAAG,CACxC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,gCAAgC,KACtC,SAAS,CAAC;AAEf,MAAM,WAAW,mCAAmC;IAClD,6BAA6B;IAC7B,cAAc,CAAC,EAAE,2BAA2B,CAAC;CAC9C;AAED,eAAO,MAAM,8BAA8B,qEACsB,CAAC;AAElE,wBAAgB,0BAA0B,IAAI,mCAAmC,CAEhF"}
1
+ {"version":3,"file":"WechenAgentEditorContext.d.ts","sourceRoot":"","sources":["../src/WechenAgentEditorContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,gCAAgC,GAAG;IAC7C,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;CACnD,CAAC;AAEF;;;;GAIG;AACH,+DAA+D;AAC/D,MAAM,MAAM,2BAA2B,GAAG,CACxC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,gCAAgC,KACtC,SAAS,CAAC;AAEf,MAAM,WAAW,mCAAmC;IAClD,6BAA6B;IAC7B,cAAc,CAAC,EAAE,2BAA2B,CAAC;IAC7C,wDAAwD;IACxD,SAAS,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;CACnD;AAED,eAAO,MAAM,8BAA8B,qEACsB,CAAC;AAIlE,wBAAgB,0BAA0B,IAAI,mCAAmC,CAEhF"}
@@ -14,11 +14,25 @@ export interface WechenBackendWorkflowNode {
14
14
  /** 执行侧参数;由导出映射写入,导入时再映射回 `node.data` */
15
15
  config: Record<string, unknown>;
16
16
  }
17
+ /** 感应连线布局快照(与 `edge.data` 中 `wechen*` 字段对应) */
18
+ export interface WechenBackendWorkflowEdgeLayout {
19
+ sourceAttach?: "right" | "bottom";
20
+ targetAttach?: "left" | "top";
21
+ pathOptions?: {
22
+ offset: number;
23
+ borderRadius: number;
24
+ };
25
+ layoutVersion?: number;
26
+ }
17
27
  export interface WechenBackendWorkflowEdge {
18
28
  source: string;
19
29
  target: string;
30
+ /** 画布边稳定 id;省略时导入按 source/target/index 合成。`ref.deleteEdge` 需使用当前画布 id。 */
31
+ id?: string;
20
32
  /** 未给出时导出为 `"default"` */
21
33
  condition?: string;
34
+ /** 可选:完整布局请优先使用 `flowJson`;DTO 往返可携带锚边与 pathOptions */
35
+ layout?: WechenBackendWorkflowEdgeLayout;
22
36
  }
23
37
  /**
24
38
  * 建议持久化 / POST 给后端的 JSON 形状(与内部 `WechenAgentFlowJson` 解耦)。
@@ -44,6 +58,8 @@ export interface BackendWorkflowExportMeta {
44
58
  workflowVersion?: string;
45
59
  createTime?: string;
46
60
  }
61
+ /** 为 DTO 边解析唯一画布 id(导出测试与导入共用语义) */
62
+ export declare function resolveBackendWorkflowEdgeId(e: WechenBackendWorkflowEdge, index: number, usedIds: Set<string>): string;
47
63
  /**
48
64
  * 将编辑器当前快照(或 `WechenAgentFlowJson`)导出为后端 DTO。
49
65
  */
@@ -1 +1 @@
1
- {"version":3,"file":"backendWorkflowJson.d.ts","sourceRoot":"","sources":["../src/backendWorkflowJson.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAI/G;;GAEG;AACH,eAAO,MAAM,sCAAsC,MAAM,CAAC;AAE1D,2CAA2C;AAC3C,MAAM,MAAM,6BAA6B,GACrC,OAAO,GACP,OAAO,GACP,MAAM,GACN,WAAW,GACX,KAAK,GACL,QAAQ,CAAC;AA6Gb,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,6BAA6B,CAAC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,KAAK,EAAE,yBAAyB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsJD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,EAChD,IAAI,EAAE,yBAAyB,GAC9B,yBAAyB,CAY3B;AA+FD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,yBAAyB,GAAG,mBAAmB,CAgB/F;AAED,sCAAsC;AACtC,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,yBAAyB,CAyC9F"}
1
+ {"version":3,"file":"backendWorkflowJson.d.ts","sourceRoot":"","sources":["../src/backendWorkflowJson.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAI/G;;GAEG;AACH,eAAO,MAAM,sCAAsC,MAAM,CAAC;AAE1D,2CAA2C;AAC3C,MAAM,MAAM,6BAA6B,GACrC,OAAO,GACP,OAAO,GACP,MAAM,GACN,WAAW,GACX,KAAK,GACL,QAAQ,CAAC;AA6Gb,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,6BAA6B,CAAC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,+CAA+C;AAC/C,MAAM,WAAW,+BAA+B;IAC9C,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,+BAA+B,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,KAAK,EAAE,yBAAyB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAyMD,oCAAoC;AACpC,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,yBAAyB,EAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB,MAAM,CAcR;AAmCD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,EAChD,IAAI,EAAE,yBAAyB,GAC9B,yBAAyB,CAY3B;AAmFD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,yBAAyB,GAAG,mBAAmB,CAgB/F;AAED,sCAAsC;AACtC,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,yBAAyB,CAyC9F"}
@@ -0,0 +1,29 @@
1
+ import { Position, Edge, Node } from '@xyflow/react';
2
+ import { WechenAgentEdgeData, WechenAttachSideIn, WechenAttachSideOut, WechenEdgePathOptions } from './wechenAgentEdgeTypes';
3
+ import { SmoothStepPathOptions } from './edgePathLayout';
4
+ /** 布局快照算法版本;升级算法时可递增并选择性重算旧图 */
5
+ export declare const WECHEN_EDGE_LAYOUT_VERSION = 1;
6
+ export declare function isValidWechenPathOptions(v: unknown): v is WechenEdgePathOptions;
7
+ export declare function isValidAttachSideOut(v: unknown): v is WechenAttachSideOut;
8
+ export declare function isValidAttachSideIn(v: unknown): v is WechenAttachSideIn;
9
+ /** 锚边 + pathOptions 均有效,回显时可跳过几何覆盖 */
10
+ export declare function isCompleteEdgeLayoutSnapshot(data: WechenAgentEdgeData | undefined): boolean;
11
+ export interface EdgeHandleEndpoints {
12
+ sourceX: number;
13
+ sourceY: number;
14
+ targetX: number;
15
+ targetY: number;
16
+ sourcePosition: Position;
17
+ targetPosition: Position;
18
+ }
19
+ /** 由节点包围盒与锚边估算 Handle 端点(用于离屏写回 pathOptions) */
20
+ export declare function computeEdgeHandleEndpoints(sourceNode: Node, targetNode: Node, attach: Pick<WechenAgentEdgeData, "wechenSourceAttachSide" | "wechenTargetAttachSide">): EdgeHandleEndpoints | null;
21
+ export declare function resolvePathOptionsForEdge(edge: Edge, getNode: (id: string) => Node | undefined, nodes: Node[]): SmoothStepPathOptions | null;
22
+ export declare function mergeEdgeLayoutSnapshot(edge: Edge, snapshot: Partial<WechenAgentEdgeData>): Edge;
23
+ /** 将当前几何下的锚边 + pathOptions 写入 `edge.data` */
24
+ export declare function persistEdgeLayoutSnapshot(edge: Edge, getNode: (id: string) => Node | undefined, nodes: Node[]): Edge;
25
+ export declare function patchEdgesRespectingSnapshots(edges: Edge[], getNode: (id: string) => Node | undefined, forceRelayout: boolean): Edge[];
26
+ export declare function enrichEdgesWithLayoutSnapshots(edges: Edge[], getNode: (id: string) => Node | undefined, nodes: Node[], options: {
27
+ forceRelayout: boolean;
28
+ }): Edge[];
29
+ //# sourceMappingURL=edgeLayoutSnapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgeLayoutSnapshot.d.ts","sourceRoot":"","sources":["../../src/flow/edgeLayoutSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAO1B,gCAAgC;AAChC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAK5C,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,OAAO,GACT,CAAC,IAAI,qBAAqB,CAa5B;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,mBAAmB,CAEzE;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,kBAAkB,CAEvE;AAED,sCAAsC;AACtC,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,mBAAmB,GAAG,SAAS,GACpC,OAAO,CAST;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED,gDAAgD;AAChD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,IAAI,EAChB,UAAU,EAAE,IAAI,EAChB,MAAM,EAAE,IAAI,CACV,mBAAmB,EACnB,wBAAwB,GAAG,wBAAwB,CACpD,GACA,mBAAmB,GAAG,IAAI,CAqC5B;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,EACzC,KAAK,EAAE,IAAI,EAAE,GACZ,qBAAqB,GAAG,IAAI,CAkC9B;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACrC,IAAI,CAUN;AAED,6CAA6C;AAC7C,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,EACzC,KAAK,EAAE,IAAI,EAAE,GACZ,IAAI,CAsBN;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,EACzC,aAAa,EAAE,OAAO,GACrB,IAAI,EAAE,CAWR;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,EACzC,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,GAClC,IAAI,EAAE,CAUR"}
@@ -1,4 +1,4 @@
1
- /** 感应带宽度;与左右 / 上下Inset 一致用于切角 */
1
+ /** 感应带宽度;与左右 / 上下 inset 一致用于角区留白 */
2
2
  export declare const ZONE_STRIP_PX = 11;
3
3
  /**
4
4
  * 四边感应区:左/上为输入池(target),右/下为输出池(source)。
@@ -1 +1 @@
1
- {"version":3,"file":"ZoneHandles.d.ts","sourceRoot":"","sources":["../../../src/flow/nodes/ZoneHandles.tsx"],"names":[],"mappings":"AAyBA,iCAAiC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAchC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,2CAoPzD"}
1
+ {"version":3,"file":"ZoneHandles.d.ts","sourceRoot":"","sources":["../../../src/flow/nodes/ZoneHandles.tsx"],"names":[],"mappings":"AA0BA,oCAAoC;AACpC,eAAO,MAAM,aAAa,KAAK,CAAC;AAuBhC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,2CAyNzD"}
@@ -1,3 +1,5 @@
1
+ import { RefObject } from 'react';
1
2
  import { WechenAgentRenderFlowNodeContext } from '../../WechenAgentEditorContext';
2
- export declare function buildRenderFlowNodeContext(data: Record<string, unknown> | undefined, selected: boolean): WechenAgentRenderFlowNodeContext;
3
+ import { WechenAgentEditorRef } from '../../flowTypes';
4
+ export declare function buildRenderFlowNodeContext(data: Record<string, unknown> | undefined, selected: boolean, editorRef: RefObject<WechenAgentEditorRef | null>): WechenAgentRenderFlowNodeContext;
3
5
  //# sourceMappingURL=flowNodeLibraryContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowNodeLibraryContext.d.ts","sourceRoot":"","sources":["../../../src/flow/nodes/flowNodeLibraryContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAEvF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,QAAQ,EAAE,OAAO,GAChB,gCAAgC,CAWlC"}
1
+ {"version":3,"file":"flowNodeLibraryContext.d.ts","sourceRoot":"","sources":["../../../src/flow/nodes/flowNodeLibraryContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAChD,gCAAgC,CAYlC"}
@@ -1,11 +1,18 @@
1
1
  import { Edge, Node } from '@xyflow/react';
2
+ export interface ApplyEdgeLayoutOptions {
3
+ /** 为 false 时保留完整布局快照的边(用于 replaceFlow / initialFlow 回显) */
4
+ forceRelayout?: boolean;
5
+ /** 用于 pathOptions 障碍避让计算 */
6
+ nodes?: Node[];
7
+ }
8
+ export declare function collectNodesFromEdges(edges: Edge[], getNode: (id: string) => Node | undefined): Node[];
2
9
  export declare function collectIncidentNodeIds(edges: Edge[]): string[];
3
- export declare function syncEdgeLayoutFromGraph(edges: Edge[], getNode: (id: string) => Node | undefined): {
10
+ export declare function syncEdgeLayoutFromGraph(edges: Edge[], getNode: (id: string) => Node | undefined, options?: ApplyEdgeLayoutOptions): {
4
11
  edges: Edge[];
5
12
  nodeIds: string[];
6
13
  };
7
14
  export declare function scheduleUpdateNodeInternals(nodeIds: Iterable<string>, updateNodeInternals: (id: string) => void): void;
8
15
  /** 用给定节点表构造 getNode(`replaceFlow` 在 state 提交前重算锚边) */
9
16
  export declare function nodeLookupFromList(nodes: Node[]): (id: string) => Node | undefined;
10
- export declare function applyEdgeLayoutSync(edges: Edge[], getNode: (id: string) => Node | undefined, updateNodeInternals: (id: string) => void): Edge[];
17
+ export declare function applyEdgeLayoutSync(edges: Edge[], getNode: (id: string) => Node | undefined, updateNodeInternals: (id: string) => void, options?: ApplyEdgeLayoutOptions): Edge[];
11
18
  //# sourceMappingURL=syncEdgeLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"syncEdgeLayout.d.ts","sourceRoot":"","sources":["../../src/flow/syncEdgeLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGhD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAW9D;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,GACxC;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAGtC;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GACxC,IAAI,CAUN;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAGlF;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,EACzC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GACxC,IAAI,EAAE,CAIR"}
1
+ {"version":3,"file":"syncEdgeLayout.d.ts","sourceRoot":"","sources":["../../src/flow/syncEdgeLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAMhD,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,GACxC,IAAI,EAAE,CAcR;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAW9D;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,EACzC,OAAO,CAAC,EAAE,sBAAsB,GAC/B;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAYtC;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GACxC,IAAI,CAUN;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAGlF;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,EACzC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,EACzC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,IAAI,EAAE,CAIR"}
@@ -8,12 +8,21 @@ export type WechenAgentEdgeFlowDirection = "forward" | "reverse";
8
8
  export type WechenAttachSideIn = "left" | "top";
9
9
  /** 四边感应:源端落在输出池的哪一侧(右 / 下) */
10
10
  export type WechenAttachSideOut = "right" | "bottom";
11
+ /** 与 `WechenAgentDefaultEdge` / SmoothStep 一致的运行时路径参数 */
12
+ export interface WechenEdgePathOptions {
13
+ offset: number;
14
+ borderRadius: number;
15
+ }
11
16
  /** 连线在边对象 `data` 上的可选字段(感应边偏好等) */
12
17
  export interface WechenAgentEdgeData {
13
18
  /** @deprecated 新图请通过交换 `source`/`target` 表达执行反向;遗留值由 normalize 迁移 */
14
19
  wechenFlowDirection?: WechenAgentEdgeFlowDirection;
15
20
  wechenTargetAttachSide?: WechenAttachSideIn;
16
21
  wechenSourceAttachSide?: WechenAttachSideOut;
22
+ /** 持久化布局快照:回显时优先用于渲染 */
23
+ wechenPathOptions?: WechenEdgePathOptions;
24
+ /** 生成快照时的布局算法版本 */
25
+ wechenLayoutVersion?: number;
17
26
  }
18
27
  /**
19
28
  * 默认边:平滑阶梯线;箭头在 **几何 target 端**(执行进入下游节点)。
@@ -1 +1 @@
1
- {"version":3,"file":"wechenAgentEdgeTypes.d.ts","sourceRoot":"","sources":["../../src/flow/wechenAgentEdgeTypes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAkB,MAAM,eAAe,CAAC;AAK7F;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,+BAA+B;AAC/B,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhD,8BAA8B;AAC9B,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErD,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;IACnD,sBAAsB,CAAC,EAAE,kBAAkB,CAAC;IAC5C,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;CAC9C;AAoCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,2CAgCtD;AAED,eAAO,MAAM,oBAAoB;;CAEZ,CAAC"}
1
+ {"version":3,"file":"wechenAgentEdgeTypes.d.ts","sourceRoot":"","sources":["../../src/flow/wechenAgentEdgeTypes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAkB,MAAM,eAAe,CAAC;AAM7F;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,+BAA+B;AAC/B,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhD,8BAA8B;AAC9B,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErD,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;IACnD,sBAAsB,CAAC,EAAE,kBAAkB,CAAC;IAC5C,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;IAC7C,wBAAwB;IACxB,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,mBAAmB;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAoCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,2CAmCtD;AAED,eAAO,MAAM,oBAAoB;;CAEZ,CAAC"}
@@ -121,8 +121,12 @@ export interface WechenAgentEditorRef {
121
121
  /** 解析后的顶栏/持久化标题(`title` prop → `replaceFlow` 写入的 title → `initialFlow.title` → 默认) */
122
122
  getTitle(): string;
123
123
  getSnapshot(): WechenAgentSnapshot;
124
- /** 规范化后的完整画布(无 React Flow 运行期字段) */
124
+ /**
125
+ * 规范化后的完整画布(无 React Flow 运行期字段),与 **`initialFlow` prop** 同形(`title?` + `nodes` + `edges`)。
126
+ */
125
127
  getFlow(): WechenAgentFlowJson;
128
+ /** 与 **`getFlow()`** 相同;命名对齐 **`initialFlow` prop**。 */
129
+ getInitialFlow(): WechenAgentFlowJson;
126
130
  getNodes(): Node[];
127
131
  getEdges(): Edge[];
128
132
  /** 等同点击「保存」:调用 `onSave`(若已传入) */
@@ -143,8 +147,13 @@ export interface WechenAgentEditorRef {
143
147
  * 若 `patch` 含 **`data`**,则与现有 **`edge.data` 合并**:对 **`patch.data` 中值为 `undefined` 的键** 从结果中 **删除**;其余键 **覆盖写入**。颠倒执行顺序请用 **`swapWechenFlowEdgeEndpoints`** 生成补丁(交换 `source`/`target` 等),**不要**再持久化 **`wechenFlowDirection: 'reverse'`**。
144
148
  */
145
149
  patchEdge(edgeId: string, patch: Partial<Edge>): void;
146
- /** 用完整 flow 替换画布(深拷贝 + 规范化);会记录 `flow.title` 供后续 `getSnapshot` 使用 */
150
+ /**
151
+ * 用完整 flow 替换画布(深拷贝 + 规范化);会记录 `flow.title` 供后续 `getSnapshot` 使用。
152
+ * 入参形状与 **`initialFlow` prop** 相同。
153
+ */
147
154
  replaceFlow(flow: WechenAgentFlowJson): void;
155
+ /** 与 **`replaceFlow(flow)`** 相同;命名对齐 **`initialFlow` prop**。 */
156
+ setInitialFlow(flow: WechenAgentFlowJson): void;
148
157
  /**
149
158
  * 按当前节点几何重算全部边的锚边偏好并刷新感应区 Handle(与 `replaceFlow` / 回显后自动逻辑相同)。
150
159
  * `readOnly` / `readingMode` 下为 no-op。
@@ -180,6 +189,8 @@ export interface WechenAgentEditorRef {
180
189
  * 若传入 **`onBeforeRemoveEdge`** 且回调返回 `false`,则 **不修改** 图状态。
181
190
  */
182
191
  removeEdge(edgeId: string): void;
192
+ /** 与 **`removeEdge(edgeId)`** 相同。 */
193
+ deleteEdge(edgeId: string): void;
183
194
  /** 与 `getSnapshot().flowJson` 相同,便于仅要字符串时使用 */
184
195
  getFlowJson(): string;
185
196
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"flowTypes.d.ts","sourceRoot":"","sources":["../src/flowTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flowTypes.d.ts","sourceRoot":"","sources":["../src/flowTypes.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -20,7 +20,7 @@ export { expandFlowHandlesConfig } from './config/flowHandleTypes';
20
20
  export { COMPONENT_LIBRARY_GROUP_APP, COMPONENT_LIBRARY_GROUP_MAIN, defaultAppAgentComponentItems, defaultMainAgentComponentItems, findComponentLibraryGroup, findComponentLibraryItem, fromWechenAgentComponentLibraryList, getDefaultComponentLibraryGroups, resolveLibraryItemNodeType, validateComponentLibraryGroups, isLibraryIconSet, isLibraryIconString, toWechenAgentComponentLibraryList, } from './config/componentLibraryConfig';
21
21
  export { appendComponentToLibrary, removeComponentFromLibrary, } from './config/componentLibraryDynamic';
22
22
  export { exportBackendWorkflowJson, importBackendWorkflowToFlow, isWechenBackendWorkflowJson, WECHEN_BACKEND_WORKFLOW_SCHEMA_VERSION, } from './backendWorkflowJson';
23
- export type { BackendWorkflowExportMeta, WechenBackendWorkflowEdge, WechenBackendWorkflowJson, WechenBackendWorkflowNode, WechenBackendWorkflowNodeType, } from './backendWorkflowJson';
23
+ export type { BackendWorkflowExportMeta, WechenBackendWorkflowEdge, WechenBackendWorkflowEdgeLayout, WechenBackendWorkflowJson, WechenBackendWorkflowNode, WechenBackendWorkflowNodeType, } from './backendWorkflowJson';
24
24
  export type { MainAgentNodeData, SimpleNodeData, WechenAddNodeFromLibraryOptions, WechenAgentEditorRef, WechenAgentFlowJson, WechenAgentHeaderActionsRenderContext, WechenAgentHeaderLeadingRenderContext, WechenAgentSnapshot, WechenBeforeRemoveEdgeFn, WechenBeforeRemoveNodeFn, WechenBeforeSaveFn, WechenConnectOptions, WechenDeleteGuardResult, } from './flowTypes';
25
25
  export { defaultInitialEdges, defaultInitialFlow, defaultInitialNodes, emptyInitialFlow, } from './flow/initialFlow';
26
26
  export { cloneWechenAgentFlow, normalizeWechenAgentFlowJson, parseWechenAgentFlowJson, } from './flow/flowJsonUtils';
@@ -36,7 +36,8 @@ export { buildWechenAgentNodeTypes, collectItemTypesFromLibraryGroups, collectNo
36
36
  export { createDroppedHostTypeNode } from './flow/dropNodes';
37
37
  export { validateWechenAgentFlow } from './flow/flowValidation';
38
38
  export type { ValidateWechenAgentFlowOptions, WechenFlowValidationIssue, WechenFlowValidationResult, WechenFlowValidationSeverity, } from './flow/flowValidation';
39
- export type { WechenAgentEdgeData, WechenAgentEdgeFlowDirection, WechenAttachSideIn, WechenAttachSideOut, } from './flow/wechenAgentEdgeTypes';
39
+ export type { WechenAgentEdgeData, WechenAgentEdgeFlowDirection, WechenAttachSideIn, WechenAttachSideOut, WechenEdgePathOptions, } from './flow/wechenAgentEdgeTypes';
40
+ export { WECHEN_EDGE_LAYOUT_VERSION, isCompleteEdgeLayoutSnapshot, } from './flow/edgeLayoutSnapshot';
40
41
  export { attachDataFromNewConnection, attachDataFromNodeGeometry, attachSidesFromStubHandles, defaultNewEdgeAttachData, getFlowNodeCenter, mergeEdgeDataAfterReconnect, patchEdgesAttachSidesFromGeometry, } from './flow/zoneConnectionAttach';
41
42
  export { WECHEN_AGENT_FLOW_DRAG_MIME, decodePaletteDragPayload, encodePaletteDragPayload, } from './flow/dragPayload';
42
43
  export type { PaletteDragPayload } from './flow/dragPayload';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}