wechen-agent-editor-v1 1.3.2 → 1.3.3

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
@@ -4,8 +4,12 @@
4
4
 
5
5
  **包名**:以 `package.json` 的 `name` 为准(`wechen-agent-editor-v1`)。安装与 `import` 均使用该名称。
6
6
 
7
+ **当前发布版本**:**1.3.2**(变更见 [CHANGELOG.md](CHANGELOG.md))。发版前自检见文末 [维护者:发版](#维护者发版)。
8
+
7
9
  > **宿主集成必读**:本包 **`dependencies` 为空**,运行时能力全部来自 **peerDependencies**。除 `npm install wechen-agent-editor-v1` 外,须在**业务工程根目录**一并安装 **`react` / `react-dom` / `antd` / `@xyflow/react` / `dagre` / `monaco-editor` / `@monaco-editor/react`**(见下文 [安装](#安装))。缺任一项会导致画布空白、连线失效、自动排版失败或 Monaco 无法加载。
8
10
 
11
+ **文档导航**:[能力地图](docs/CAPABILITY-MAP.md)(props / ref / 图操作 / 数据)· [集成阶梯 L0–L3](docs/HOST-INTEGRATION-LADDER.md) · [工程基线](docs/ENGINEERING-BASELINE.md) · Playground 默认 [`?tab=overview`](playground/README.md)
12
+
9
13
  ## 快速开始
10
14
 
11
15
  ### 60 秒最小集成(L0)
@@ -148,7 +152,10 @@ const flow = importBackendWorkflowToFlow(dtoFromApi);
148
152
  // <WechenAgentEditor initialFlow={flow} />
149
153
  ```
150
154
 
151
- 本仓库 **playground** 提供对照:`npm run dev:minimal` 为最小页;默认 `npm run dev` 为带场景 JSON 与工具栏的完整演示(见 `playground/README.md`)。
155
+ 本仓库 **playground** 提供对照:
156
+
157
+ - **`npm run dev`**:文档站(侧栏能力 Tab + **仓库文档** `?tab=repo-docs` + 分栏独立滚动;默认 `?tab=overview`),见 [playground/README.md](playground/README.md)。
158
+ - **`npm run dev:minimal`**:仅最小宿主集成(对照上文「60 秒最小集成」)。
152
159
 
153
160
  ### 编辑器与 Agent 运行时
154
161
 
@@ -235,6 +242,8 @@ npm install wechen-agent-editor-v1 react react-dom antd @xyflow/react dagre mona
235
242
 
236
243
  自 **1.2.3** 起 **`@xyflow/react`**、**`dagre`** 由 **peer** 提供(不再随本包内嵌)。自 **1.0.x** 起 **`react` / `antd` / `monaco-*`** 即为 peer。升级自内嵌 Flow 的旧版时,请务必在宿主根目录 **新增** `@xyflow/react` 与 `dagre` 依赖。
237
244
 
245
+ 自 **1.3.2** 起推荐用 **`onFlowOperation`** 统一图操作策略(替代仅覆盖删除的 `onBeforeRemove*`);**peer 清单无变化**,从 **1.3.0** 升级通常只需 bump 版本并回归构建与画布烟测。
246
+
238
247
  **不要**再依赖本包 tarball 内自带的 `@xyflow/react`(历史 `bundledDependencies` 已移除)。宿主与编辑器 **必须** `npm ls @xyflow/react` 仅一棵有效树。
239
248
 
240
249
  安装后建议自检:
@@ -266,7 +275,7 @@ npm 7+ 会校验整棵依赖树的 peer。冲突常来自宿主已有包,未
266
275
  "monaco-editor": "^0.45.0",
267
276
  "react": "^18.3.0",
268
277
  "react-dom": "^18.3.0",
269
- "wechen-agent-editor-v1": "^1.3.0"
278
+ "wechen-agent-editor-v1": "^1.3.2"
270
279
  }
271
280
  }
272
281
  ```
@@ -451,7 +460,9 @@ validateLocaleMessagesCompleteness(enPack);
451
460
  - **`readOnly`**:禁止对图的增删改(组件库拖入、连线、删除键、拖动节点、选中浮动条、`ref.removeNode` / `patchNodeData` 等),仍可使用平移/缩放查看,**可点选节点/边** 在右侧只读查看配置。**`readOnly`** 与 **`readingMode`** 会出现在 **`renderConfigPanel` / `renderNodeConfig`** 的入参中。
452
461
  - **`readingMode`**:**仅展示中间流程画布**(隐藏顶栏与左右栏),并**禁用选中**与一切改图,适合文档内嵌、大屏预览等纯展示场景(隐含只读)。根节点会附加 **`wechen-agent-editor--reading`**。
453
462
 
454
- ### 删除守卫(`onBeforeRemoveNode` / `onBeforeRemoveEdge`)
463
+ ### 删除守卫(`onBeforeRemoveNode` / `onBeforeRemoveEdge`)— **@deprecated**
464
+
465
+ > **新集成请用** 下文 **[图操作事件(`onFlowOperation`)](#图操作事件onflowoperation)**。本 API 仅覆盖删除;与 `onFlowOperation` 同时传入时 **事件优先**。迁移见 [docs/CAPABILITY-MAP.md](docs/CAPABILITY-MAP.md)。
455
466
 
456
467
  在可编辑模式下,可通过回调 **按节点/边粒度** 决定是否允许删除。同步返回 **`false`** 时取消该次删除(**Backspace** 与 **`ref.removeNode` / `ref.removeEdge`** 均生效)。**`readOnly` / `readingMode`** 下不调用回调。删除节点时 **级联移除** 的关联边 **不会** 逐条触发 `onBeforeRemoveEdge`。
457
468
 
@@ -469,6 +480,39 @@ validateLocaleMessagesCompleteness(enPack);
469
480
 
470
481
  L1 工厂同样支持:`buildWechenAgentEditorProps({ onBeforeRemoveNode: ... })`。
471
482
 
483
+ ### 图操作事件(`onFlowOperation`)
484
+
485
+ 在可编辑模式下,**删/复制/新增/连线/patch/路径重置** 等改图操作在应用前会派发 **`WechenFlowOperationEvent`**。宿主在 **`onFlowOperation`** 中按 **`event.kind`**(如 `node.remove`、`node.duplicate`、`edge.add`)与 **`event.node` / `event.edge`** 返回 **`false`** 即可取消该次操作(键盘、浮动条、ref 路径一致)。**`onFlowOperation` 对 `node.remove` / `edge.remove` 优先于** `onBeforeRemoveNode` / `onBeforeRemoveEdge`。**`readOnly` / `readingMode`** 下不调用。
486
+
487
+ 拒绝 **`node.remove`** 时,编辑器会 **原子取消** 该次删节点操作:节点保留,且 **不会** 因该次键盘/ref 删除而连带移除关联边(级联删边 **不** 单独派发 `edge.remove`)。宿主 **只需** 拦截 `node.remove` / `node.duplicate` 等,**不必** 为级联边再返回 `edge.remove: false`。显式选中边后删除仍走 **`edge.remove`** 门控。
488
+
489
+ | `kind`(节选) | 含义 |
490
+ |----------------|------|
491
+ | `node.remove` | 删除节点 |
492
+ | `node.duplicate` | 复制节点 |
493
+ | `node.add` | 新增节点(拖库、ref) |
494
+ | `node.patch` | 补丁 `node.data` |
495
+ | `edge.remove` | 删除边 |
496
+ | `edge.add` | 新建连线 |
497
+ | `edge.reconnect` | 重连连线 |
498
+ | `edge.patch` | 补丁边 |
499
+ | `edge.path.reset` | 恢复自动路径 |
500
+
501
+ ```tsx
502
+ <WechenAgentEditor
503
+ onFlowOperation={(event) => {
504
+ if (event.node?.type === "pill") {
505
+ if (event.kind === "node.remove" || event.kind === "node.duplicate") {
506
+ return false;
507
+ }
508
+ }
509
+ return true;
510
+ }}
511
+ />
512
+ ```
513
+
514
+ Playground:`?tab=flow-operation-policy`。L1:`buildWechenAgentEditorProps({ onFlowOperation: ... })`。
515
+
472
516
  ### 顶底感应区连线(默认,上进下出)
473
517
 
474
518
  内置 **`pill` / `card` / `mainAgent`** 在未使用 **`renderFlowNode`**、且未启用下文 **legacy `flowHandles`** 时,采用 **顶 / 底** 周界窄条:**输入池 = 顶边**(`target`)、**输出池 = 底边**(`source`),符合 Agent **自上而下** 阅读;多条入/出边沿顶/底边按邻居 **水平坐标** 分列槽位;**整条感应条**均可拖拽拉出连线(十字光标),几何锚点仍在 **条带中心** stub。新建连接桩:**`in-new-top-{nodeId}`**(顶)、**`out-new-bottom-{nodeId}`**(底)。透明 **`Handle`**、无固定圆点桩 UI。新边 **`sourceHandle` / `targetHandle`** 仍为 **`out-${edgeId}`** / **`in-${edgeId}`**;**`normalizeWechenAgentFlowJson`** 归一化旧桩 id。新建连线写入 **`edge.data.wechenSourceAttachSide` / `wechenTargetAttachSide`**(默认 **底→顶**)。旧图 **`left`/`right`** 锚边在加载/同步时迁移为 **`top`/`bottom`**。**`ConnectionMode.Strict`**、**`isValidConnection`**(禁自环)。默认边 **平滑阶梯 + 终点箭头**(箭头在 **target** 端)。与 **`autoLayoutNodes` / `relayoutEdges`**、底边扇出 **共干** 路径配合。
@@ -709,6 +753,7 @@ Playground **`renderConfigPanel`** Tab 中 `card` / 边配置演示了该流程
709
753
  | 烟测 | 拖入节点、连线、`readOnly` / `readingMode`、保存或 `getSnapshot`;边路径添加拐点/拖顶点 |
710
754
  | ref 增图 | `ref.addNodeFromLibrary` / `ref.connect` 与拖放、连线行为一致 |
711
755
  | DTO 往返 | `exportBackendWorkflowJson` → `importBackendWorkflowToFlow` → `replaceFlow`;`condition`/`api`/`script` 经 `data.backendNodeType` |
756
+ | 图操作门控 | **`onFlowOperation`**:拒 `node.remove` 时节点与级联边均保留(Playground `?tab=flow-operation-policy`) |
712
757
  | 图校验 | `validateWechenAgentFlow`;可选 `onBeforeSave` 拦截 |
713
758
 
714
759
  ---
@@ -721,9 +766,16 @@ npm install --prefix playground
721
766
  npm run dev # Playground 文档站(分 Tab 演示;ref 全表见 ?tab=ref-api,见 playground/README.md)
722
767
  npm run dev:minimal # 仅最小宿主集成(对照 README「快速开始」)
723
768
  npm run baseline # 工程基线:测试数、最大 LOC、dist 体积(见 docs/ENGINEERING-BASELINE.md)
769
+ npm test # Vitest(含 flowOperation / deleteGuard 表驱动与 editorGateSmoke)
770
+ npm run typecheck
771
+ npm run check:docs # 文档覆盖 WARN(onFlowOperation kind ↔ README)
772
+ npm run release:prep # 发版门禁:test + build + pack:check + playground build + baseline
773
+ npm run verify:change # 可选:test + typecheck + audit:white-screen(见 docs/ENGINEERING-BASELINE.md)
724
774
  ```
725
775
 
726
- 浏览器地址以终端输出为准(默认 `http://localhost:5173`)。
776
+ **门控冒烟**(无 DOM):`src/flow/editorGateSmoke.test.ts` — 验证 `onFlowOperation` 拒删 pill 时级联边过滤;已包含在 `npm test` / `release:prep`。
777
+
778
+ 浏览器地址以终端输出为准(默认 `http://localhost:5173`)。文档站默认 **`?tab=overview`**。
727
779
 
728
780
  ---
729
781
 
@@ -733,24 +785,51 @@ npm run baseline # 工程基线:测试数、最大 LOC、dist 体积
733
785
 
734
786
  | 版本 | 宿主需注意 |
735
787
  |------|------------|
788
+ | **1.3.2** | **`onFlowOperation`** 统一图操作门控;拒 `node.remove` 时级联边原子保留;legacy 边/只读/配置区白屏加固;**peer 同 1.3.0** |
736
789
  | **1.3.0** | 自由折线路径编辑、选中浮动条、路径 ref;**peer 要求同 1.2.3** |
737
790
  | **1.2.3** | **Breaking(集成)**:`@xyflow/react`、`dagre` 改为 peer,须宿主显式安装 |
738
791
  | **1.1.x** | `buildWechenAgentEditorProps`、后端 DTO、删除守卫等 |
739
792
 
740
793
  完整变更见 **`CHANGELOG.md`**。
741
794
 
742
- ### 发版清单
795
+ ### 发版清单(1.3.2)
796
+
797
+ 1. **版本号**:确认根目录 `package.json` **`version`** 为 **`1.3.2`**(npm 以该字段为准;README / CHANGELOG 已对齐)。
798
+ 2. **依赖与锁文件**:`npm install`;若改过 `playground/`,执行 `npm install --prefix playground`。
799
+ 3. **门禁**(推荐一条命令):
800
+
801
+ ```bash
802
+ npm run release:prep
803
+ ```
804
+
805
+ 等价分步:`npm test` → `npm run build` → `npm run pack:check` → `npm --prefix playground run build` → `npm run baseline`(基线摘要)。可选加强:`npm run verify:change`(含 `audit:white-screen`)、`npm run check:docs`。
806
+
807
+ 日志写入 **`.release-check.log`**(`release:prep` 脚本)。
743
808
 
744
- 1. 确认 `package.json` **`version`** bump(**以 `package.json` 为准**,当前 **1.3.0**)。
745
- 2. 执行 **`npm install`**(同步 lock)→ **`npm run release:prep`**(`test` + `build` + `pack:check` + playground build + **基线摘要**),或分步执行;可单独运行 **`npm run baseline`** 查看 LOC/体积指标。
746
- 3. **`npm whoami`** 确认已登录 **registry.npmjs.org**;scoped 包首次发布需 **`--access public`**(`publishConfig` 已配置)。
747
- 4. 执行 **`npm run release`**(或 `npm publish`),发后验证:
809
+ 4. **登录 registry**:`npm whoami`(`registry.npmjs.org`);国内镜像发版用 **`npm run release:cn`**(勿与 npmjs 混用同一 token 流程 unless intentional)。
810
+ 5. **发布**:
811
+
812
+ ```bash
813
+ npm run release
814
+ # 或:npm publish --access public --registry=https://registry.npmjs.org/
815
+ ```
816
+
817
+ 6. **发后验证**:
748
818
 
749
819
  ```bash
750
820
  npm view wechen-agent-editor-v1 version
751
- npm pack --dry-run # 确认 tarball 仅含 distLICENSE
821
+ npm pack --dry-run # tarball 应仅含 dist/、LICENSE(见 package.json files)
822
+ ```
823
+
824
+ 7. **空目录烟测**(将 `<version>` 换为 `package.json` 中的版本):
825
+
826
+ ```bash
827
+ mkdir /tmp/wechen-smoke && cd /tmp/wechen-smoke
828
+ npm init -y
829
+ npm install wechen-agent-editor-v1@<version> react react-dom antd @xyflow/react dagre monaco-editor @monaco-editor/react
830
+ node -e "import('wechen-agent-editor-v1').then(m => console.log('ok', typeof m.WechenAgentEditor))"
752
831
  ```
753
832
 
754
- 5. 在空目录烟测:`npm install wechen-agent-editor-v1@<version>`(`<version>` 与 `package.json` 一致),`import { WechenAgentEditor } from "wechen-agent-editor-v1"`。
833
+ 8. **Git 标签(建议)**:`git tag v1.3.2 && git push origin v1.3.2`(按团队规范)。
755
834
 
756
835
  发版前可将 `repository` / `bugs` / `homepage` 中的占位 URL 换成真实仓库地址(私有仓库可仅在内部文档记录,见「集成排错」说明)。
@@ -1,7 +1,7 @@
1
1
  import { CSSProperties, ReactNode } from 'react';
2
2
  import { ComponentLibraryGroup, WechenAgentComponentLibraryList } from './config/componentLibraryConfig';
3
3
  import { WechenAgentRenderSelectionToolbarFn, WechenSelectionToolbarSlot } from './flow/selectionToolbar/SelectionToolbar';
4
- import { WechenAgentEditorRef, WechenAgentFlowJson, WechenAgentHeaderActionsRenderContext, WechenAgentHeaderLeadingRenderContext, WechenAgentSnapshot, WechenBeforeRemoveEdgeFn, WechenBeforeRemoveNodeFn, WechenBeforeSaveFn } from './flowTypes';
4
+ import { WechenAgentEditorRef, WechenAgentFlowJson, WechenAgentHeaderActionsRenderContext, WechenAgentHeaderLeadingRenderContext, WechenAgentSnapshot, WechenBeforeRemoveEdgeFn, WechenBeforeRemoveNodeFn, WechenBeforeSaveFn, WechenOnFlowOperationFn } from './flowTypes';
5
5
  import { WechenAgentRenderFlowNodeFn } from './WechenAgentEditorContext';
6
6
  import { WechenAgentRenderNodeConfigFn } from './panels/NodeConfigPanel';
7
7
  import { WechenAgentRenderConfigPanelFn } from './wechenAgentConfigPanel';
@@ -71,11 +71,15 @@ export interface WechenAgentEditorProps {
71
71
  * 删除节点前回调;同步返回 **`false`** 时取消该次删除(键盘 Backspace 与 `ref.removeNode` 均生效)。
72
72
  * 删除节点时 **级联移除** 的关联边 **不会** 逐条触发 `onBeforeRemoveEdge`。
73
73
  * `readOnly` / `readingMode` 下 **不调用** 本回调。
74
+ *
75
+ * @deprecated 请改用 **`onFlowOperation`**(`kind: "node.remove"`)。见 README 与 `docs/CAPABILITY-MAP.md`。
74
76
  */
75
77
  onBeforeRemoveNode?: WechenBeforeRemoveNodeFn;
76
78
  /**
77
79
  * 删除边前回调;同步返回 **`false`** 时取消该次删除(键盘与 `ref.removeEdge` 均生效)。
78
80
  * `readOnly` / `readingMode` 下 **不调用** 本回调。
81
+ *
82
+ * @deprecated 请改用 **`onFlowOperation`**(`kind: "edge.remove"`)。见 README 与 `docs/CAPABILITY-MAP.md`。
79
83
  */
80
84
  onBeforeRemoveEdge?: WechenBeforeRemoveEdgeFn;
81
85
  /**
@@ -83,6 +87,12 @@ export interface WechenAgentEditorProps {
83
87
  * `readOnly` / `readingMode` 下 **不调用**。
84
88
  */
85
89
  onBeforeSave?: WechenBeforeSaveFn;
90
+ /**
91
+ * 图操作统一门控:删/复制/新增/连线/patch 等改图前派发事件;返回 **`false`** 取消。
92
+ * 对 `node.remove` / `edge.remove` **优先于** `onBeforeRemoveNode` / `onBeforeRemoveEdge`。
93
+ * `readOnly` / `readingMode` 下 **不调用**。
94
+ */
95
+ onFlowOperation?: WechenOnFlowOperationFn;
86
96
  /**
87
97
  * 为真时禁止对图的增删改(拖入、连线、删除键、拖动节点等);仍允许平移/缩放。
88
98
  * 标志会传入 `renderConfigPanel` / `renderNodeConfig` 便于禁用表单。
@@ -1 +1 @@
1
- {"version":3,"file":"WechenAgentEditor.d.ts","sourceRoot":"","sources":["../src/WechenAgentEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WechenAgentEditor.d.ts","sourceRoot":"","sources":["../src/WechenAgentEditor.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { NodeProps } from '@xyflow/react';
2
2
  import { ReactNode, RefObject } from 'react';
3
3
  import { WechenAgentEditorRef } from './flowTypes';
4
+ import { WechenFlowOperationKind } from './flow/flowOperationEvents';
4
5
  import { WechenAgentRenderSelectionToolbarFn, WechenSelectionToolbarSlot } from './flow/selectionToolbar/SelectionToolbar';
5
6
  export type WechenAgentRenderFlowNodeContext = {
6
7
  /** 当前节点是否被画布选中(与 NodeProps.selected 一致) */
@@ -21,6 +22,11 @@ export type WechenAgentRenderFlowNodeContext = {
21
22
  */
22
23
  /** `props.type` 为落盘 `node.type`(= `item.type`),非 `item.key` */
23
24
  export type WechenAgentRenderFlowNodeFn = (props: NodeProps, context: WechenAgentRenderFlowNodeContext) => ReactNode;
25
+ export type CanPerformFlowOperationFn = (kind: WechenFlowOperationKind, partial: {
26
+ source: import('./flow/flowOperationEvents').WechenFlowOperationSource;
27
+ node?: import('@xyflow/react').Node;
28
+ edge?: import('@xyflow/react').Edge;
29
+ }) => boolean;
24
30
  export interface WechenAgentEditorRenderContextValue {
25
31
  /** 自定义节点内容区;未设置时使用内置默认字段块 */
26
32
  renderFlowNode?: WechenAgentRenderFlowNodeFn;
@@ -32,6 +38,8 @@ export interface WechenAgentEditorRenderContextValue {
32
38
  canvasEditable: boolean;
33
39
  /** 编辑器命令式 ref,供默认节点调用宿主 `renderFlowNode` 时传入 context */
34
40
  editorRef: RefObject<WechenAgentEditorRef | null>;
41
+ /** 预判某操作是否允许(与 `onFlowOperation` 策略一致) */
42
+ canPerformFlowOperation?: CanPerformFlowOperationFn;
35
43
  }
36
44
  export declare const WechenAgentEditorRenderContext: import('react').Context<WechenAgentEditorRenderContextValue | null>;
37
45
  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,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EACV,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,0CAA0C,CAAC;AAElD,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,qCAAqC;IACrC,sBAAsB,CAAC,EAAE,mCAAmC,CAAC;IAC7D,oCAAoC;IACpC,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;IAClD,iCAAiC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,SAAS,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;CACnD;AAED,eAAO,MAAM,8BAA8B,qEACsB,CAAC;AASlE,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;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EACV,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,0CAA0C,CAAC;AAElD,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,MAAM,yBAAyB,GAAG,CACtC,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAE;IACP,MAAM,EAAE,OAAO,4BAA4B,EAAE,yBAAyB,CAAC;IACvE,IAAI,CAAC,EAAE,OAAO,eAAe,EAAE,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,eAAe,EAAE,IAAI,CAAC;CACrC,KACE,OAAO,CAAC;AAEb,MAAM,WAAW,mCAAmC;IAClD,6BAA6B;IAC7B,cAAc,CAAC,EAAE,2BAA2B,CAAC;IAC7C,qCAAqC;IACrC,sBAAsB,CAAC,EAAE,mCAAmC,CAAC;IAC7D,oCAAoC;IACpC,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;IAClD,iCAAiC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,SAAS,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAClD,0CAA0C;IAC1C,uBAAuB,CAAC,EAAE,yBAAyB,CAAC;CACrD;AAED,eAAO,MAAM,8BAA8B,qEACsB,CAAC;AASlE,wBAAgB,0BAA0B,IAAI,mCAAmC,CAEhF"}
@@ -1,11 +1,28 @@
1
1
  import { Edge, EdgeChange, Node, NodeChange } from '@xyflow/react';
2
2
  import { WechenBeforeRemoveEdgeFn, WechenBeforeRemoveNodeFn } from '../flowTypes';
3
- /** 是否允许删除指定节点(无回调或节点不存在时按 allow / deny 语义处理)。 */
4
- export declare function canRemoveNode(nodeId: string, nodes: ReadonlyArray<Node>, onBeforeRemoveNode?: WechenBeforeRemoveNodeFn): boolean;
3
+ import { buildFlowOperationEvent, FlowOperationGateContext, WechenFlowOperationSource } from './flowOperationEvents';
4
+ /** 选中态与「本批已拒 node.remove」——用于级联 edge.remove 过滤 */
5
+ export type DeleteGuardCascadeContext = {
6
+ nodes: ReadonlyArray<Node>;
7
+ selectedNodeId?: string | null;
8
+ selectedEdgeId?: string | null;
9
+ /** 同一次 `onNodesChange` 批内被拒绝的 node id(RF 先节点后边时) */
10
+ deniedNodeRemoveIds?: ReadonlySet<string>;
11
+ };
12
+ /** 从节点变更批中收集将被 `node.remove` 守卫拒绝的 id */
13
+ export declare function collectDeniedNodeRemoveIds(changes: NodeChange[], nodes: ReadonlyArray<Node>, gate?: FlowOperationGateContext | WechenBeforeRemoveNodeFn): Set<string>;
14
+ /**
15
+ * 级联删边:因删除节点而连带移除的边,不单独走 edge.remove。
16
+ * 当端点 node.remove 被拒绝且边非显式删除目标时,应丢弃该 edge remove 变更。
17
+ */
18
+ export declare function isCascadeEdgeRemoveBlocked(edge: Edge, nodes: ReadonlyArray<Node>, gate: FlowOperationGateContext, cascade: DeleteGuardCascadeContext, source?: WechenFlowOperationSource): boolean;
19
+ /** 是否允许删除指定节点(无回调或节点不存在时按 allow 处理)。 */
20
+ export declare function canRemoveNode(nodeId: string, nodes: ReadonlyArray<Node>, gate?: FlowOperationGateContext | WechenBeforeRemoveNodeFn, source?: WechenFlowOperationSource): boolean;
5
21
  /** 是否允许删除指定边。 */
6
- export declare function canRemoveEdge(edgeId: string, edges: ReadonlyArray<Edge>, onBeforeRemoveEdge?: WechenBeforeRemoveEdgeFn): boolean;
7
- /** 过滤 `onNodesChange` 中被守卫拒绝的 `remove` 项;无回调时原样返回。 */
8
- export declare function filterRemoveNodeChanges(changes: NodeChange[], nodes: ReadonlyArray<Node>, onBeforeRemoveNode?: WechenBeforeRemoveNodeFn): NodeChange[];
9
- /** 过滤 `onEdgesChange` 中被守卫拒绝的 `remove` 项;无回调时原样返回。 */
10
- export declare function filterRemoveEdgeChanges(changes: EdgeChange[], edges: ReadonlyArray<Edge>, onBeforeRemoveEdge?: WechenBeforeRemoveEdgeFn): EdgeChange[];
22
+ export declare function canRemoveEdge(edgeId: string, edges: ReadonlyArray<Edge>, gate?: FlowOperationGateContext | WechenBeforeRemoveEdgeFn, source?: WechenFlowOperationSource): boolean;
23
+ /** 过滤 `onNodesChange` 中被守卫拒绝的 `remove` 项。 */
24
+ export declare function filterRemoveNodeChanges(changes: NodeChange[], nodes: ReadonlyArray<Node>, gate?: FlowOperationGateContext | WechenBeforeRemoveNodeFn): NodeChange[];
25
+ /** 过滤 `onEdgesChange` 中被守卫拒绝的 `remove` 项(含级联删边)。 */
26
+ export declare function filterRemoveEdgeChanges(changes: EdgeChange[], edges: ReadonlyArray<Edge>, gate?: FlowOperationGateContext | WechenBeforeRemoveEdgeFn, cascade?: DeleteGuardCascadeContext): EdgeChange[];
27
+ export { buildFlowOperationEvent };
11
28
  //# sourceMappingURL=deleteGuard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deleteGuard.d.ts","sourceRoot":"","sources":["../../src/flow/deleteGuard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAMvF,iDAAiD;AACjD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,kBAAkB,CAAC,EAAE,wBAAwB,GAC5C,OAAO,CAST;AAED,iBAAiB;AACjB,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,kBAAkB,CAAC,EAAE,wBAAwB,GAC5C,OAAO,CAST;AAED,sDAAsD;AACtD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EAAE,EACrB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,kBAAkB,CAAC,EAAE,wBAAwB,GAC5C,UAAU,EAAE,CAUd;AAED,sDAAsD;AACtD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EAAE,EACrB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,kBAAkB,CAAC,EAAE,wBAAwB,GAC5C,UAAU,EAAE,CAUd"}
1
+ {"version":3,"file":"deleteGuard.d.ts","sourceRoot":"","sources":["../../src/flow/deleteGuard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EACL,uBAAuB,EAEvB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AAoC/B,kDAAkD;AAClD,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEF,yCAAyC;AACzC,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,UAAU,EAAE,EACrB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,EAAE,wBAAwB,GAAG,wBAAwB,GACzD,GAAG,CAAC,MAAM,CAAC,CAeb;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,IAAI,EAAE,wBAAwB,EAC9B,OAAO,EAAE,yBAAyB,EAClC,MAAM,GAAE,yBAAsC,GAC7C,OAAO,CA4BT;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,EAAE,wBAAwB,GAAG,wBAAwB,EAC1D,MAAM,GAAE,yBAAiC,GACxC,OAAO,CAcT;AAED,iBAAiB;AACjB,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,EAAE,wBAAwB,GAAG,wBAAwB,EAC1D,MAAM,GAAE,yBAAiC,GACxC,OAAO,CAcT;AAED,6CAA6C;AAC7C,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EAAE,EACrB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,EAAE,wBAAwB,GAAG,wBAAwB,GACzD,UAAU,EAAE,CAWd;AAED,oDAAoD;AACpD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EAAE,EACrB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,EAAE,wBAAwB,GAAG,wBAAwB,EAC1D,OAAO,CAAC,EAAE,yBAAyB,GAClC,UAAU,EAAE,CA4Bd;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { Connection, Edge, Node } from '@xyflow/react';
2
+ import { WechenAgentSnapshot, WechenBeforeRemoveEdgeFn, WechenBeforeRemoveNodeFn, WechenDeleteGuardResult } from '../flowTypes';
3
+ /** 稳定操作类型,供宿主 `switch (event.kind)` */
4
+ export type WechenFlowOperationKind = "node.remove" | "node.duplicate" | "node.add" | "node.patch" | "node.move" | "edge.remove" | "edge.add" | "edge.reconnect" | "edge.patch" | "edge.path.reset" | "edge.path.insertVertex" | "edge.path.removeVertex";
5
+ /** 登记的门控 kind(文档覆盖检查用) */
6
+ export declare const WECHEN_FLOW_OPERATION_KINDS: readonly ["node.remove", "node.duplicate", "node.add", "node.patch", "node.move", "edge.remove", "edge.add", "edge.reconnect", "edge.patch", "edge.path.reset", "edge.path.insertVertex", "edge.path.removeVertex"];
7
+ export type WechenFlowOperationSource = "keyboard" | "ref" | "selectionToolbar" | "libraryDrop" | "connect" | "reconnect" | "drag" | "configPanel" | "header";
8
+ export interface WechenFlowOperationEvent {
9
+ kind: WechenFlowOperationKind;
10
+ source: WechenFlowOperationSource;
11
+ nodes: ReadonlyArray<Node>;
12
+ edges: ReadonlyArray<Edge>;
13
+ node?: Node;
14
+ edge?: Edge;
15
+ patch?: Record<string, unknown>;
16
+ connection?: Connection;
17
+ snapshot?: WechenAgentSnapshot;
18
+ }
19
+ /** 同步返回 `false` 取消操作 */
20
+ export type WechenOnFlowOperationFn = (event: WechenFlowOperationEvent) => WechenDeleteGuardResult;
21
+ export interface FlowOperationGateContext {
22
+ effectiveReadOnly?: boolean;
23
+ nodes: ReadonlyArray<Node>;
24
+ edges: ReadonlyArray<Edge>;
25
+ onFlowOperation?: WechenOnFlowOperationFn;
26
+ onBeforeRemoveNode?: WechenBeforeRemoveNodeFn;
27
+ onBeforeRemoveEdge?: WechenBeforeRemoveEdgeFn;
28
+ }
29
+ /**
30
+ * 是否允许执行该图操作。`effectiveReadOnly` 为真时 **SHALL** 由调用方早退且不调用本函数。
31
+ * `onFlowOperation` 优先于 legacy `onBeforeRemove*`(仅 `node.remove` / `edge.remove`)。
32
+ */
33
+ export declare function isFlowOperationAllowed(event: WechenFlowOperationEvent, ctx: FlowOperationGateContext): boolean;
34
+ /** UI 预判:与 `isFlowOperationAllowed` 相同策略,不修改 state */
35
+ export declare function canPerformFlowOperation(kind: WechenFlowOperationKind, partial: Omit<WechenFlowOperationEvent, "kind" | "nodes" | "edges">, ctx: FlowOperationGateContext): boolean;
36
+ export declare function buildFlowOperationEvent(kind: WechenFlowOperationKind, source: WechenFlowOperationSource, ctx: FlowOperationGateContext, payload?: Omit<WechenFlowOperationEvent, "kind" | "source" | "nodes" | "edges">): WechenFlowOperationEvent;
37
+ //# sourceMappingURL=flowOperationEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowOperationEvents.d.ts","sourceRoot":"","sources":["../../src/flow/flowOperationEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAEtB,uCAAuC;AACvC,MAAM,MAAM,uBAAuB,GAC/B,aAAa,GACb,gBAAgB,GAChB,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,UAAU,GACV,gBAAgB,GAChB,YAAY,GACZ,iBAAiB,GACjB,wBAAwB,GACxB,wBAAwB,CAAC;AAE7B,0BAA0B;AAC1B,eAAO,MAAM,2BAA2B,qNAae,CAAC;AAExD,MAAM,MAAM,yBAAyB,GACjC,UAAU,GACV,KAAK,GACL,kBAAkB,GAClB,aAAa,GACb,SAAS,GACT,WAAW,GACX,MAAM,GACN,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,yBAAyB,CAAC;IAClC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED,wBAAwB;AACxB,MAAM,MAAM,uBAAuB,GAAG,CACpC,KAAK,EAAE,wBAAwB,KAC5B,uBAAuB,CAAC;AAE7B,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;CAC/C;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,wBAAwB,EAC/B,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAWT;AAED,sDAAsD;AACtD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,EACnE,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAaT;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,uBAAuB,EAC7B,MAAM,EAAE,yBAAyB,EACjC,GAAG,EAAE,wBAAwB,EAC7B,OAAO,GAAE,IAAI,CACX,wBAAwB,EACxB,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CACjC,GACL,wBAAwB,CAQ1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionToolbar.d.ts","sourceRoot":"","sources":["../../../src/flow/selectionToolbar/SelectionToolbar.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAI5D,OAAO,wBAAwB,CAAC;AAEhC,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,6BAA6B,GACrC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,EAAE;QAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,CAAC;CACxC,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,EAAE;QAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,CAAC;CACxC,CAAC;AAEN,MAAM,MAAM,mCAAmC,GAAG,CAChD,GAAG,EAAE,6BAA6B,KAC/B,SAAS,CAAC;AAEf,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,UAAU,CAAC;AAEhE,UAAU,qBAAqB;IAC7B,IAAI,EAAE,0BAA0B,CAAC;IACjC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAmGD,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,YAAmB,GACpB,EAAE,qBAAqB,kDA8CvB"}
1
+ {"version":3,"file":"SelectionToolbar.d.ts","sourceRoot":"","sources":["../../../src/flow/selectionToolbar/SelectionToolbar.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAI5D,OAAO,wBAAwB,CAAC;AAEhC,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,6BAA6B,GACrC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,EAAE;QAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,CAAC;CACxC,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,EAAE;QAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,CAAC;CACxC,CAAC;AAEN,MAAM,MAAM,mCAAmC,GAAG,CAChD,GAAG,EAAE,6BAA6B,KAC/B,SAAS,CAAC;AAEf,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,UAAU,CAAC;AAEhE,UAAU,qBAAqB;IAC7B,IAAI,EAAE,0BAA0B,CAAC;IACjC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAoJD,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,YAAmB,GACpB,EAAE,qBAAqB,kDA8CvB"}
@@ -20,6 +20,7 @@ export type WechenBeforeRemoveEdgeFn = (edge: Edge) => WechenDeleteGuardResult;
20
20
  * `readOnly` / `readingMode` 下 **不调用** 本回调。
21
21
  */
22
22
  export type WechenBeforeSaveFn = (snapshot: WechenAgentSnapshot) => WechenDeleteGuardResult;
23
+ export type { WechenFlowOperationKind, WechenFlowOperationSource, WechenFlowOperationEvent, WechenOnFlowOperationFn, } from './flow/flowOperationEvents';
23
24
  /** `ref.addNodeFromLibrary` 入参 */
24
25
  export interface WechenAddNodeFromLibraryOptions {
25
26
  groupKey: string;
@@ -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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"}
@@ -33,6 +33,7 @@ export interface WechenHostEditorConfig {
33
33
  onBeforeRemoveNode?: WechenAgentEditorProps["onBeforeRemoveNode"];
34
34
  onBeforeRemoveEdge?: WechenAgentEditorProps["onBeforeRemoveEdge"];
35
35
  onBeforeSave?: WechenAgentEditorProps["onBeforeSave"];
36
+ onFlowOperation?: WechenAgentEditorProps["onFlowOperation"];
36
37
  /**
37
38
  * 完整覆盖左侧组件库。与 {@link library} 二选一:**本字段优先**;
38
39
  * 设置后忽略 `library`。
@@ -1 +1 @@
1
- {"version":3,"file":"hostEditorConfig.d.ts","sourceRoot":"","sources":["../src/hostEditorConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAwB,MAAM,iCAAiC,CAAC;AAEnG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,sCAAsC;AACtC,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,uBAAuB,CAAC;IAChC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,0BAA0B,EAAE,CAAC;CAC5C;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAChD,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IAClE,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IAClE,YAAY,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACtD;;;OAGG;IACH,aAAa,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACxC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,uBAAuB,CAAC,EAAE,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;IAC5E,cAAc,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;IAChE,mBAAmB,CAAC,EAAE,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;IACpE,mBAAmB,CAAC,EAAE,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;IACpE,0EAA0E;IAC1E,cAAc,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,eAAe,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IAC5D,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;CAC/D;AAwDD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,sBAAsB,GAAG,sBAAsB,CAoClG"}
1
+ {"version":3,"file":"hostEditorConfig.d.ts","sourceRoot":"","sources":["../src/hostEditorConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAwB,MAAM,iCAAiC,CAAC;AAEnG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,sCAAsC;AACtC,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,uBAAuB,CAAC;IAChC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,0BAA0B,EAAE,CAAC;CAC5C;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAChD,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IAClE,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IAClE,YAAY,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACtD,eAAe,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IAC5D;;;OAGG;IACH,aAAa,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACxC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,uBAAuB,CAAC,EAAE,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;IAC5E,cAAc,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;IAChE,mBAAmB,CAAC,EAAE,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;IACpE,mBAAmB,CAAC,EAAE,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;IACpE,0EAA0E;IAC1E,cAAc,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,eAAe,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IAC5D,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;CAC/D;AAwDD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,sBAAsB,GAAG,sBAAsB,CAuClG"}
package/dist/index.d.ts CHANGED
@@ -23,7 +23,7 @@ export { COMPONENT_LIBRARY_GROUP_APP, COMPONENT_LIBRARY_GROUP_MAIN, defaultAppAg
23
23
  export { appendComponentToLibrary, removeComponentFromLibrary, } from './config/componentLibraryDynamic';
24
24
  export { exportBackendWorkflowJson, importBackendWorkflowToFlow, isWechenBackendWorkflowJson, WECHEN_BACKEND_WORKFLOW_SCHEMA_VERSION, } from './backendWorkflowJson';
25
25
  export type { BackendWorkflowExportMeta, WechenBackendWorkflowEdge, WechenBackendWorkflowEdgeLayout, WechenBackendWorkflowJson, WechenBackendWorkflowNode, WechenBackendWorkflowNodeType, } from './backendWorkflowJson';
26
- export type { MainAgentNodeData, SimpleNodeData, WechenAddNodeFromLibraryOptions, WechenAgentEditorRef, WechenAgentFlowJson, WechenAgentHeaderActionsRenderContext, WechenAgentHeaderLeadingRenderContext, WechenAgentSnapshot, WechenBeforeRemoveEdgeFn, WechenBeforeRemoveNodeFn, WechenBeforeSaveFn, WechenConnectOptions, WechenDeleteGuardResult, WechenAgentNodeAutoLayoutDirection, WechenAgentNodeAutoLayoutOptions, } from './flowTypes';
26
+ export type { MainAgentNodeData, SimpleNodeData, WechenAddNodeFromLibraryOptions, WechenAgentEditorRef, WechenAgentFlowJson, WechenAgentHeaderActionsRenderContext, WechenAgentHeaderLeadingRenderContext, WechenAgentSnapshot, WechenBeforeRemoveEdgeFn, WechenBeforeRemoveNodeFn, WechenBeforeSaveFn, WechenConnectOptions, WechenDeleteGuardResult, WechenFlowOperationKind, WechenFlowOperationSource, WechenFlowOperationEvent, WechenOnFlowOperationFn, WechenAgentNodeAutoLayoutDirection, WechenAgentNodeAutoLayoutOptions, } from './flowTypes';
27
27
  export { defaultInitialEdges, defaultInitialFlow, defaultInitialNodes, emptyInitialFlow, } from './flow/initialFlow';
28
28
  export { cloneWechenAgentFlow, normalizeWechenAgentFlowJson, parseWechenAgentFlowJson, } from './flow/flowJsonUtils';
29
29
  export { swapWechenFlowEdgeEndpoints } from './flow/swapFlowEdgeEndpoints';
@@ -37,6 +37,8 @@ export type { CreateNodeFromLibraryItemFailureReason, CreateNodeFromLibraryItemO
37
37
  export { buildWechenAgentNodeTypes, collectItemTypesFromLibraryGroups, collectNodeTypesFromFlow, computeFlowNodeTypesKey, wechenAgentNodeTypes, } from './flow/nodeTypes';
38
38
  export { createDroppedHostTypeNode } from './flow/dropNodes';
39
39
  export { validateWechenAgentFlow } from './flow/flowValidation';
40
+ export { canPerformFlowOperation, isFlowOperationAllowed, buildFlowOperationEvent, WECHEN_FLOW_OPERATION_KINDS, } from './flow/flowOperationEvents';
41
+ export type { FlowOperationGateContext } from './flow/flowOperationEvents';
40
42
  export { balanceLayoutPositions, BALANCE_CENTER_TOLERANCE_PX, parentChildCenterDeltaX, } from './flow/autoLayoutBalance';
41
43
  export type { BalanceLayoutOptions } from './flow/autoLayoutBalance';
42
44
  export { computeAutoLayoutPositions, resolveAutoLayoutOptions, } from './flow/autoLayoutNodes';
@@ -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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"}