wechen-agent-editor-v1 1.1.6 → 1.1.8

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
@@ -139,7 +139,8 @@ WechenAgentEditor(编排) → onSave / exportBackendWorkflowJson → 宿主
139
139
 
140
140
  - **`onTestRun` / `ref.testRun()`**:仅触发宿主回调,具体执行由宿主实现。
141
141
  - **`validateWechenAgentFlow(flow)`**:纯函数图校验(默认不阻断保存);可在 `onBeforeSave` 内返回 `false` 拦截。
142
- - **ref 增删改查**:`getSnapshot` / `patchNodeData` / `removeNode` / `addNode` / `addNodeFromLibrary` / `addEdge` / `connect` / `replaceFlow`(见 `WechenAgentEditorRef`)。
142
+ - **ref 增删改查**:`getSnapshot` / `patchNodeData` / `removeNode` / `addNode` / `addNodeFromLibrary` / `addEdge` / `connect` / `replaceFlow` / `relayoutEdges`(见 `WechenAgentEditorRef`)。
143
+ - **回显后连线布局**:`initialFlow` 与 `replaceFlow` 会 **自动** 按当前节点几何重算感应锚边(`wechenSourceAttachSide` / `wechenTargetAttachSide`)并刷新 Handle;**不** 持久化路径折角/偏移。存盘锚边若与几何不一致会被覆盖。高级场景可调用 `ref.relayoutEdges()`(`readOnly` / `readingMode` 下 no-op)。
143
144
 
144
145
  ```tsx
145
146
  import { validateWechenAgentFlow } from "wechen-agent-editor-v1";
@@ -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;AA4BzC,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;AA6xBtC,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,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"}
@@ -0,0 +1,71 @@
1
+ import { Position, EdgeProps, Node } from '@xyflow/react';
2
+ import { WechenAttachSideIn, WechenAttachSideOut } from './wechenAgentEdgeTypes';
3
+ import { FlowNodeRect } from './flowNodeBBox';
4
+ /** 路径与节点包围盒的最小间隙(与四边感应带宽度协调) */
5
+ export declare const EDGE_PATH_CLEARANCE_PX = 10;
6
+ export interface SmoothStepPathOptions {
7
+ borderRadius: number;
8
+ offset: number;
9
+ }
10
+ export interface AxisSegment {
11
+ x1: number;
12
+ y1: number;
13
+ x2: number;
14
+ y2: number;
15
+ }
16
+ export declare function attachSideToPosition(side: WechenAttachSideOut | WechenAttachSideIn): Position;
17
+ export declare function segmentIntersectsRect(seg: AxisSegment, rect: FlowNodeRect): boolean;
18
+ /**
19
+ * SmoothStep 轴对齐主干折线(忽略圆角,用于保守相交检测)。
20
+ */
21
+ export declare function computeSmoothStepAxisSegments(params: {
22
+ sourceX: number;
23
+ sourceY: number;
24
+ targetX: number;
25
+ targetY: number;
26
+ sourcePosition: Position;
27
+ targetPosition: Position;
28
+ offset: number;
29
+ }): AxisSegment[];
30
+ export declare function countSegmentObstacleIntersections(segments: AxisSegment[], obstacles: FlowNodeRect[]): number;
31
+ /**
32
+ * 对向锚边(右→左、下→上等)允许的最大 offset,避免 SmoothStep 中间折点倒置自重叠。
33
+ * 非对向组合返回 `null`(由混合侧折线处理,无 mid1/mid2 约束)。
34
+ */
35
+ export declare function maxOffsetForOpposingGap(params: {
36
+ sourceX: number;
37
+ sourceY: number;
38
+ targetX: number;
39
+ targetY: number;
40
+ sourcePosition: Position;
41
+ targetPosition: Position;
42
+ }): number | null;
43
+ /** 折点倒置程度(0 = 合法);用于候选路径评分。 */
44
+ export declare function smoothStepMidpointInversionScore(params: {
45
+ sourceX: number;
46
+ sourceY: number;
47
+ targetX: number;
48
+ targetY: number;
49
+ sourcePosition: Position;
50
+ targetPosition: Position;
51
+ offset: number;
52
+ }): number;
53
+ /** 不穿源/目标扩展盒的最小 offset(保守估计)。 */
54
+ export declare function minOffsetForNodeClearance(params: {
55
+ sourceRect: FlowNodeRect | null;
56
+ targetRect: FlowNodeRect | null;
57
+ sourcePosition: Position;
58
+ targetPosition: Position;
59
+ clearance?: number;
60
+ }): number;
61
+ export declare function resolveSmoothStepPathOptions(params: {
62
+ sourceX: number;
63
+ sourceY: number;
64
+ targetX: number;
65
+ targetY: number;
66
+ sourcePosition: Position;
67
+ targetPosition: Position;
68
+ minOffset?: number;
69
+ }): SmoothStepPathOptions;
70
+ export declare function resolveEdgePathOptions(props: Pick<EdgeProps, "sourceX" | "sourceY" | "targetX" | "targetY" | "sourcePosition" | "targetPosition" | "source" | "target" | "data">, nodes: Node[]): SmoothStepPathOptions;
71
+ //# sourceMappingURL=edgePathLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgePathLayout.d.ts","sourceRoot":"","sources":["../../src/flow/edgePathLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAExB,gCAAgC;AAChC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAWzC,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAMD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,GAC7C,QAAQ,CAWV;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,YAAY,GACjB,OAAO,CAqBT;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,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;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,WAAW,EAAE,CAwGhB;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,YAAY,EAAE,GACxB,MAAM,CAUR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,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,GAAG,MAAM,GAAG,IAAI,CAuChB;AAED,+BAA+B;AAC/B,wBAAgB,gCAAgC,CAAC,MAAM,EAAE;IACvD,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;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CA4BT;AAsCD,iCAAiC;AACjC,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAoCT;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,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;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,qBAAqB,CAiCxB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,IAAI,CACT,SAAS,EACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,MAAM,CACT,EACD,KAAK,EAAE,IAAI,EAAE,GACZ,qBAAqB,CAmJvB"}
@@ -0,0 +1,29 @@
1
+ import { Node } from '@xyflow/react';
2
+ export interface FlowNodeRect {
3
+ left: number;
4
+ top: number;
5
+ right: number;
6
+ bottom: number;
7
+ }
8
+ export declare function getEstimatedNodeSize(nodeType: string | undefined): {
9
+ w: number;
10
+ h: number;
11
+ } | null;
12
+ export declare function getFlowNodeWidthHeight(n: Node): {
13
+ w: number;
14
+ h: number;
15
+ } | null;
16
+ /** 轴对齐包围盒(流程坐标) */
17
+ export declare function getFlowNodeBBox(n: Node): FlowNodeRect | null;
18
+ export declare function getFlowNodeCenterFromBBox(n: Node): {
19
+ x: number;
20
+ y: number;
21
+ } | null;
22
+ export declare function expandFlowNodeRect(r: FlowNodeRect, margin: number): FlowNodeRect;
23
+ /** 水平投影是否有交集 */
24
+ export declare function horizontalProjOverlapNodes(a: Node, b: Node): boolean;
25
+ /** 两盒水平间隙(重叠时为 0) */
26
+ export declare function horizontalGapBetweenRects(a: FlowNodeRect, b: FlowNodeRect): number;
27
+ /** 两盒竖直间隙(重叠时为 0) */
28
+ export declare function verticalGapBetweenRects(a: FlowNodeRect, b: FlowNodeRect): number;
29
+ //# sourceMappingURL=flowNodeBBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowNodeBBox.d.ts","sourceRoot":"","sources":["../../src/flow/flowNodeBBox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAS1C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG;IAClE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,IAAI,CAKP;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmB/E;AAED,mBAAmB;AACnB,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,YAAY,GAAG,IAAI,CAa5D;AAED,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,IAAI,GACN;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASjC;AAED,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,YAAY,EACf,MAAM,EAAE,MAAM,GACb,YAAY,CAOd;AAED,gBAAgB;AAChB,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAOpE;AAED,qBAAqB;AACrB,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,GACd,MAAM,CAQR;AAED,qBAAqB;AACrB,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,GACd,MAAM,CAQR"}
@@ -1 +1 @@
1
- {"version":3,"file":"ZoneHandles.d.ts","sourceRoot":"","sources":["../../../src/flow/nodes/ZoneHandles.tsx"],"names":[],"mappings":"AAwBA,iCAAiC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAchC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,2CA+OzD"}
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"}
@@ -0,0 +1,11 @@
1
+ import { Edge, Node } from '@xyflow/react';
2
+ export declare function collectIncidentNodeIds(edges: Edge[]): string[];
3
+ export declare function syncEdgeLayoutFromGraph(edges: Edge[], getNode: (id: string) => Node | undefined): {
4
+ edges: Edge[];
5
+ nodeIds: string[];
6
+ };
7
+ export declare function scheduleUpdateNodeInternals(nodeIds: Iterable<string>, updateNodeInternals: (id: string) => void): void;
8
+ /** 用给定节点表构造 getNode(`replaceFlow` 在 state 提交前重算锚边) */
9
+ 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[];
11
+ //# sourceMappingURL=syncEdgeLayout.d.ts.map
@@ -0,0 +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 +1 @@
1
- {"version":3,"file":"wechenAgentEdgeTypes.d.ts","sourceRoot":"","sources":["../../src/flow/wechenAgentEdgeTypes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,SAAS,EAAkB,MAAM,eAAe,CAAC;AAG/E;;;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,2CAiBtD;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;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"}
@@ -11,8 +11,10 @@ export declare function getFlowNodeCenter(n: Node | undefined): {
11
11
  export declare function patchEdgesAttachSidesFromGeometry(edges: Edge[], getNode: (id: string) => Node | undefined): Edge[];
12
12
  /**
13
13
  * 根据源→目标几何判定感应池锚边(输出池右/下,输入池左/上):
14
- * - 上下叠放(水平投影重叠且源在上)→ 源走下、目标走上(红线直连语义)
15
- * - 否则用 \|Δy\| 与 \|Δx\| 比较,竖直占优则同样底→顶
14
+ * - 上下叠放(水平投影重叠且源在上)→ 源走下、目标走上
15
+ * - 父上子下扇出 底→顶
16
+ * - 目标在上且投影重叠 → 右/左
17
+ * - 否则比较水平/竖直间隙与中心位移,对角平局用象限
16
18
  */
17
19
  export declare function attachDataFromNodeGeometry(sourceNode: Node | undefined, targetNode: Node | undefined): Pick<WechenAgentEdgeData, "wechenSourceAttachSide" | "wechenTargetAttachSide"> | null;
18
20
  /** 无法测量节点盒时:根据拖拽所用的 stub 回退锚边偏好。 */
@@ -1 +1 @@
1
- {"version":3,"file":"zoneConnectionAttach.d.ts","sourceRoot":"","sources":["../../src/flow/zoneConnectionAttach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAoClE,mCAAmC;AACnC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKtF;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,GACxC,IAAI,EAAE,CAuBR;AA8CD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,IAAI,GAAG,SAAS,EAC5B,UAAU,EAAE,IAAI,GAAG,SAAS,GAC3B,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,GAAG,wBAAwB,CAAC,GAAG,IAAI,CAsBvF;AAED,oCAAoC;AACpC,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,UAAU,GACZ,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,GAAG,wBAAwB,CAAC,CAiBhF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,EAAE,UAAU,EACb,UAAU,CAAC,EAAE,IAAI,EACjB,UAAU,CAAC,EAAE,IAAI,GAChB,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,GAAG,wBAAwB,CAAC,CAMhF;AAED,yDAAyD;AACzD,wBAAgB,wBAAwB,IAAI,IAAI,CAC9C,mBAAmB,EACnB,wBAAwB,GAAG,wBAAwB,CACpD,CAKA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,IAAI,EACb,aAAa,EAAE,UAAU,EACzB,OAAO,EAAE,IAAI,EACb,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkCzB"}
1
+ {"version":3,"file":"zoneConnectionAttach.d.ts","sourceRoot":"","sources":["../../src/flow/zoneConnectionAttach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAelE,mCAAmC;AACnC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKtF;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,GACxC,IAAI,EAAE,CAuBR;AAmED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,IAAI,GAAG,SAAS,EAC5B,UAAU,EAAE,IAAI,GAAG,SAAS,GAC3B,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,GAAG,wBAAwB,CAAC,GAAG,IAAI,CAwEvF;AAED,oCAAoC;AACpC,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,UAAU,GACZ,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,GAAG,wBAAwB,CAAC,CAiBhF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,EAAE,UAAU,EACb,UAAU,CAAC,EAAE,IAAI,EACjB,UAAU,CAAC,EAAE,IAAI,GAChB,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,GAAG,wBAAwB,CAAC,CAMhF;AAED,yDAAyD;AACzD,wBAAgB,wBAAwB,IAAI,IAAI,CAC9C,mBAAmB,EACnB,wBAAwB,GAAG,wBAAwB,CACpD,CAKA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,IAAI,EACb,aAAa,EAAE,UAAU,EACzB,OAAO,EAAE,IAAI,EACb,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkCzB"}
@@ -5,14 +5,14 @@ export type NodeLookup = (id: string) => Node | undefined;
5
5
  export interface EdgeLike {
6
6
  id: string;
7
7
  }
8
- /** 将边集合稳定排序后,前 ⌈n/2⌉ 条归 primary,其余归 secondary。 */
8
+ /** @deprecated 仅无邻居坐标时的兜底 */
9
9
  export declare function partitionEdgesBetweenStripPair<E extends EdgeLike>(edges: E[]): {
10
10
  primary: E[];
11
11
  secondary: E[];
12
12
  };
13
- /** 槽位百分比:共 slotCount 个槽,index ∈ [0, slotCount-1] */
13
+ /** 槽位百分比:共 slotCount 个槽,index ∈ [0, slotCount-1];首尾略内缩避免贴角 */
14
14
  export declare function slotPercent(index: number, slotCount: number): string;
15
- /** 入边:`data.wechenTargetAttachSide` 为 left/top 时强制落入对应带;其余按半分策略拆入 pending。 */
15
+ /** 入边:`data.wechenTargetAttachSide` 为 left/top 时强制落入对应带。 */
16
16
  export declare function partitionIncomingForZones<E extends EdgeLike & {
17
17
  data?: {
18
18
  wechenTargetAttachSide?: WechenAttachSideIn;
@@ -31,8 +31,7 @@ export declare function partitionOutgoingForZones<E extends EdgeLike & {
31
31
  bottom: E[];
32
32
  };
33
33
  /**
34
- * 入边按「源→本节点」几何落入左/上感应带;沿左带按源节点中心 **y**、沿上带按 **x** 排序,
35
- * 使多条入线在周界上大致按来源方位展开。
34
+ * 入边按「源→本节点」几何落入左/上感应带;沿左带按源节点中心 **y**、沿上带按 **x** 排序。
36
35
  */
37
36
  export declare function partitionIncomingByGeometry(edges: Edge[], targetId: string, getNode: NodeLookup): {
38
37
  left: Edge[];
@@ -45,4 +44,8 @@ export declare function partitionOutgoingByGeometry(edges: Edge[], sourceId: str
45
44
  right: Edge[];
46
45
  bottom: Edge[];
47
46
  };
47
+ /**
48
+ * `ZoneHandles` 分区缓存 epoch:关联边锚边 data + 邻居节点尺寸,避免仅 `getNode` 引用不变时不重算。
49
+ */
50
+ export declare function buildZoneHandleLayoutEpoch(nodeId: string, edges: Edge[], getNode: NodeLookup): string;
48
51
  //# sourceMappingURL=zoneHandleLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoneHandleLayout.d.ts","sourceRoot":"","sources":["../../src/flow/zoneHandleLayout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAMhC,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,kDAAkD;AAClD,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,QAAQ,EAC/D,KAAK,EAAE,CAAC,EAAE,GACT;IAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,CAAC,EAAE,CAAA;CAAE,CAOlC;AAED,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,CAAC,SAAS,QAAQ,GAAG;IACnB,IAAI,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,kBAAkB,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/D,EACD,KAAK,EAAE,CAAC,EAAE,GAAG;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,GAAG,EAAE,CAAC,EAAE,CAAA;CAAE,CAoBrC;AAED,gEAAgE;AAChE,wBAAgB,yBAAyB,CACvC,CAAC,SAAS,QAAQ,GAAG;IACnB,IAAI,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,mBAAmB,CAAA;KAAE,GAAG,IAAI,CAAC;CAChE,EACD,KAAK,EAAE,CAAC,EAAE,GAAG;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,MAAM,EAAE,CAAC,EAAE,CAAA;CAAE,CAoBzC;AAMD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB;IAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAAC,GAAG,EAAE,IAAI,EAAE,CAAA;CAAE,CA0C/B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CA0CnC"}
1
+ {"version":3,"file":"zoneHandleLayout.d.ts","sourceRoot":"","sources":["../../src/flow/zoneHandleLayout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAQhC,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AA6BD,6BAA6B;AAC7B,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,QAAQ,EAC/D,KAAK,EAAE,CAAC,EAAE,GACT;IAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,CAAC,EAAE,CAAA;CAAE,CAElC;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOpE;AAgCD,4DAA4D;AAC5D,wBAAgB,yBAAyB,CACvC,CAAC,SAAS,QAAQ,GAAG;IACnB,IAAI,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,kBAAkB,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/D,EACD,KAAK,EAAE,CAAC,EAAE,GAAG;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,GAAG,EAAE,CAAC,EAAE,CAAA;CAAE,CAoBrC;AAED,gEAAgE;AAChE,wBAAgB,yBAAyB,CACvC,CAAC,SAAS,QAAQ,GAAG;IACnB,IAAI,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,mBAAmB,CAAA;KAAE,GAAG,IAAI,CAAC;CAChE,EACD,KAAK,EAAE,CAAC,EAAE,GAAG;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,MAAM,EAAE,CAAC,EAAE,CAAA;CAAE,CAoBzC;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB;IAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAAC,GAAG,EAAE,IAAI,EAAE,CAAA;CAAE,CA0C/B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CA0CnC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,UAAU,GAClB,MAAM,CA4BR"}
@@ -145,6 +145,11 @@ export interface WechenAgentEditorRef {
145
145
  patchEdge(edgeId: string, patch: Partial<Edge>): void;
146
146
  /** 用完整 flow 替换画布(深拷贝 + 规范化);会记录 `flow.title` 供后续 `getSnapshot` 使用 */
147
147
  replaceFlow(flow: WechenAgentFlowJson): void;
148
+ /**
149
+ * 按当前节点几何重算全部边的锚边偏好并刷新感应区 Handle(与 `replaceFlow` / 回显后自动逻辑相同)。
150
+ * `readOnly` / `readingMode` 下为 no-op。
151
+ */
152
+ relayoutEdges(): void;
148
153
  /** 与右侧面板一致的选中节点 id;未选中节点时为 `null` */
149
154
  getSelectedNodeId(): string | null;
150
155
  /** 与右侧面板一致的选中边 id;未选中边时为 `null` */
@@ -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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"}