wechen-agent-editor-v1 1.0.0

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.
Files changed (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +196 -0
  3. package/dist/WechenAgentEditor.d.ts +51 -0
  4. package/dist/WechenAgentEditor.d.ts.map +1 -0
  5. package/dist/WechenAgentEditorContext.d.ts +10 -0
  6. package/dist/WechenAgentEditorContext.d.ts.map +1 -0
  7. package/dist/config/componentLibraryConfig.d.ts +77 -0
  8. package/dist/config/componentLibraryConfig.d.ts.map +1 -0
  9. package/dist/config/componentLibraryDynamic.d.ts +10 -0
  10. package/dist/config/componentLibraryDynamic.d.ts.map +1 -0
  11. package/dist/config/componentLibraryIconTypes.d.ts +6 -0
  12. package/dist/config/componentLibraryIconTypes.d.ts.map +1 -0
  13. package/dist/flow/WechenAgentEdgeFlowStyles.d.ts +6 -0
  14. package/dist/flow/WechenAgentEdgeFlowStyles.d.ts.map +1 -0
  15. package/dist/flow/dragPayload.d.ts +11 -0
  16. package/dist/flow/dragPayload.d.ts.map +1 -0
  17. package/dist/flow/dropNodes.d.ts +12 -0
  18. package/dist/flow/dropNodes.d.ts.map +1 -0
  19. package/dist/flow/flowJsonUtils.d.ts +15 -0
  20. package/dist/flow/flowJsonUtils.d.ts.map +1 -0
  21. package/dist/flow/initialFlow.d.ts +9 -0
  22. package/dist/flow/initialFlow.d.ts.map +1 -0
  23. package/dist/flow/mergeNodeData.d.ts +11 -0
  24. package/dist/flow/mergeNodeData.d.ts.map +1 -0
  25. package/dist/flow/nodeTypes.d.ts +9 -0
  26. package/dist/flow/nodeTypes.d.ts.map +1 -0
  27. package/dist/flow/nodes/CardNode.d.ts +3 -0
  28. package/dist/flow/nodes/CardNode.d.ts.map +1 -0
  29. package/dist/flow/nodes/MainAgentNode.d.ts +3 -0
  30. package/dist/flow/nodes/MainAgentNode.d.ts.map +1 -0
  31. package/dist/flow/nodes/PillNode.d.ts +3 -0
  32. package/dist/flow/nodes/PillNode.d.ts.map +1 -0
  33. package/dist/flow/wechenAgentEdgeTypes.d.ts +11 -0
  34. package/dist/flow/wechenAgentEdgeTypes.d.ts.map +1 -0
  35. package/dist/flowTypes.d.ts +118 -0
  36. package/dist/flowTypes.d.ts.map +1 -0
  37. package/dist/index.d.ts +32 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +9309 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/panels/ComponentLibraryPanel.d.ts +6 -0
  42. package/dist/panels/ComponentLibraryPanel.d.ts.map +1 -0
  43. package/dist/panels/EdgeConfigPanel.d.ts +8 -0
  44. package/dist/panels/EdgeConfigPanel.d.ts.map +1 -0
  45. package/dist/panels/NodeConfigPanel.d.ts +25 -0
  46. package/dist/panels/NodeConfigPanel.d.ts.map +1 -0
  47. package/dist/panels/RightConfigPanel.d.ts +17 -0
  48. package/dist/panels/RightConfigPanel.d.ts.map +1 -0
  49. package/dist/panels/libraryIconRender.d.ts +7 -0
  50. package/dist/panels/libraryIconRender.d.ts.map +1 -0
  51. package/dist/panels/libraryPalette.d.ts +5 -0
  52. package/dist/panels/libraryPalette.d.ts.map +1 -0
  53. package/dist/panels/paletteAntIcon.d.ts +18 -0
  54. package/dist/panels/paletteAntIcon.d.ts.map +1 -0
  55. package/dist/wechenAgentConfigPanel.d.ts +32 -0
  56. package/dist/wechenAgentConfigPanel.d.ts.map +1 -0
  57. package/package.json +75 -0
@@ -0,0 +1,6 @@
1
+ import { LibraryGroup } from './libraryPalette';
2
+ export interface ComponentLibraryPanelProps {
3
+ groups?: LibraryGroup[];
4
+ }
5
+ export declare function ComponentLibraryPanel({ groups, }: ComponentLibraryPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=ComponentLibraryPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentLibraryPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ComponentLibraryPanel.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA+BrD,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,MAAW,GACZ,EAAE,0BAA0B,2CA6F5B"}
@@ -0,0 +1,8 @@
1
+ import { Edge } from '@xyflow/react';
2
+ export interface EdgeConfigPanelProps {
3
+ selected: Edge | null;
4
+ /** 合并更新画布上的边(浅合并边对象字段) */
5
+ onPatchEdge: (id: string, patch: Partial<Edge>) => void;
6
+ }
7
+ export declare function EdgeConfigPanel({ selected, onPatchEdge }: EdgeConfigPanelProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=EdgeConfigPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EdgeConfigPanel.d.ts","sourceRoot":"","sources":["../../src/panels/EdgeConfigPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAM1C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,0BAA0B;IAC1B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;CACzD;AAaD,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,oBAAoB,2CA0E9E"}
@@ -0,0 +1,25 @@
1
+ import { FormInstance } from 'antd/es/form';
2
+ import { Node } from '@xyflow/react';
3
+ /**
4
+ * 自定义节点配置区;`form` 与外层 `Form` 同源。
5
+ * `onValuesChange` 会将**当前表单值**作为补丁合并进节点 `data`(**深度合并**嵌套对象;
6
+ * **数组字段**若在表单中出现则整段替换)。嵌套路径请使用 antd `name` 数组形式。
7
+ */
8
+ export type WechenAgentRenderNodeConfigFn = (ctx: {
9
+ node: Node;
10
+ form: FormInstance;
11
+ }) => React.ReactNode | undefined;
12
+ export interface NodeConfigPanelProps {
13
+ selected: Node | null;
14
+ /** 合并写入当前选中节点的 `data`(内部为深度合并,见 `mergeNodeData`) */
15
+ onPatchNode: (id: string, patch: Record<string, unknown>) => void;
16
+ /**
17
+ * 自定义右侧配置区,渲染在 **Form 内部**,与 `form` 同源;
18
+ * 子组件可使用 antd `Form.useFormInstance()` 获取同一实例。
19
+ * 若对当前选中节点返回 **`undefined`**,则使用内置默认表单(主 Agent 完整面板等)。
20
+ * 表单变更会以**深度合并**写入节点 `data`(数组字段整段替换),见 `WechenAgentRenderNodeConfigFn`。
21
+ */
22
+ renderNodeConfig?: WechenAgentRenderNodeConfigFn;
23
+ }
24
+ export declare function NodeConfigPanel({ selected, onPatchNode, renderNodeConfig, }: NodeConfigPanelProps): import("react/jsx-runtime").JSX.Element;
25
+ //# sourceMappingURL=NodeConfigPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeConfigPanel.d.ts","sourceRoot":"","sources":["../../src/panels/NodeConfigPanel.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAM1C;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE;IAChD,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;CACpB,KAAK,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AAElC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,oDAAoD;IACpD,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;CAClD;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,WAAW,EACX,gBAAgB,GACjB,EAAE,oBAAoB,2CA2JtB"}
@@ -0,0 +1,17 @@
1
+ import { Edge, Node } from '@xyflow/react';
2
+ import { WechenAgentRenderConfigPanelFn } from '../wechenAgentConfigPanel';
3
+ import { WechenAgentRenderNodeConfigFn } from './NodeConfigPanel';
4
+ export interface RightConfigPanelProps {
5
+ selectedEdgeId: string | null;
6
+ selectedEdge: Edge | null;
7
+ selectedNode: Node | null;
8
+ onPatchEdge: (id: string, patch: Partial<Edge>) => void;
9
+ onPatchNode: (id: string, patch: Record<string, unknown>) => void;
10
+ renderConfigPanel?: WechenAgentRenderConfigPanelFn;
11
+ renderNodeConfig?: WechenAgentRenderNodeConfigFn;
12
+ }
13
+ /**
14
+ * 右侧配置区:`renderConfigPanel` 优先;若其返回 `undefined` 则回退内置 `EdgeConfigPanel` / `NodeConfigPanel`。
15
+ */
16
+ export declare function RightConfigPanel({ selectedEdgeId, selectedEdge, selectedNode, onPatchEdge, onPatchNode, renderConfigPanel, renderNodeConfig, }: RightConfigPanelProps): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=RightConfigPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightConfigPanel.d.ts","sourceRoot":"","sources":["../../src/panels/RightConfigPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EAAmB,KAAK,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAExF,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,iBAAiB,CAAC,EAAE,8BAA8B,CAAC;IACnD,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;CAClD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,EAAE,qBAAqB,2CAoCvB"}
@@ -0,0 +1,7 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ import { ComponentLibraryIconSlot } from '../config/componentLibraryIconTypes';
3
+ /** 用于小按钮 `icon`:字符串走 Palette;否则原样节点;都无时用 fallback */
4
+ export declare function renderCompactIconSlot(value: ComponentLibraryIconSlot | undefined, fallback: ReactNode): ReactNode;
5
+ export declare function renderLeadingLibraryIcon(value: ComponentLibraryIconSlot | undefined, stringStyle?: CSSProperties): ReactNode;
6
+ export declare function renderTrailingLibraryIcon(value: ComponentLibraryIconSlot | undefined, stringStyle?: CSSProperties): ReactNode;
7
+ //# sourceMappingURL=libraryIconRender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libraryIconRender.d.ts","sourceRoot":"","sources":["../../src/panels/libraryIconRender.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAOpF,qDAAqD;AACrD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,wBAAwB,GAAG,SAAS,EAC3C,QAAQ,EAAE,SAAS,GAClB,SAAS,CA4BX;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,wBAAwB,GAAG,SAAS,EAC3C,WAAW,CAAC,EAAE,aAAa,GAC1B,SAAS,CAmBX;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,wBAAwB,GAAG,SAAS,EAC3C,WAAW,CAAC,EAAE,aAAa,GAC1B,SAAS,CAyBX"}
@@ -0,0 +1,5 @@
1
+ export type { ComponentLibraryItem as LibraryItem, ComponentLibraryGroup as LibraryGroup, } from '../config/componentLibraryConfig';
2
+ export { COMPONENT_LIBRARY_GROUP_APP, COMPONENT_LIBRARY_GROUP_MAIN, defaultAppAgentComponentItems, defaultMainAgentComponentItems, getDefaultComponentLibraryGroups, } from '../config/componentLibraryConfig';
3
+ /** 与历史行为一致:模块加载时生成一份默认分组(若需避免被意外改写,请用 `getDefaultComponentLibraryGroups()`) */
4
+ export declare const defaultLibraryGroups: import('./libraryPalette').LibraryGroup[];
5
+ //# sourceMappingURL=libraryPalette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libraryPalette.d.ts","sourceRoot":"","sources":["../../src/panels/libraryPalette.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,IAAI,WAAW,EACnC,qBAAqB,IAAI,YAAY,GACtC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,kCAAkC,CAAC;AAG1C,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,2CAAqC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { CSSProperties, ComponentType } from 'react';
2
+ type IconProps = {
3
+ style?: CSSProperties;
4
+ className?: string;
5
+ };
6
+ /**
7
+ * 按 `@ant-design/icons` 的**导出组件名**解析(如 `RobotOutlined`)。
8
+ * 未配置或名称无效时返回 `null`(由调用方决定默认图标)。
9
+ */
10
+ export declare function resolvePaletteAntIcon(name: string | undefined): ComponentType<IconProps> | null;
11
+ export declare function PaletteAntIcon(props: {
12
+ name: string | undefined;
13
+ style?: CSSProperties;
14
+ /** 未配置或名称无效时是否使用默认机器人图标(列表「后图标」请传 false) */
15
+ useFallbackWhenMissing?: boolean;
16
+ }): import("react/jsx-runtime").JSX.Element | null;
17
+ export {};
18
+ //# sourceMappingURL=paletteAntIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paletteAntIcon.d.ts","sourceRoot":"","sources":["../../src/panels/paletteAntIcon.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE1D,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAI/D;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CASjC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,4CAA4C;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,kDASA"}
@@ -0,0 +1,32 @@
1
+ import { Edge, Node } from '@xyflow/react';
2
+ import { ReactNode } from 'react';
3
+ /** 选中节点时传入统一配置渲染函数 */
4
+ export type WechenAgentConfigPanelNodeContext = {
5
+ kind: "node";
6
+ node: Node;
7
+ /**
8
+ * 与内置节点配置、ref **`patchNodeData`** 一致:将 `patch` **合并进 `node.data`**(`mergeNodeData`)。
9
+ * **`patch` 的顶层键 = `node.data` 的键**,不是整颗 React Flow `Node`,也不包含 `id` / `type` / `position`。
10
+ * **`patch` 为 `data` 的部分字段**,**可在一次调用中传多个顶层键**(与 `mergeNodeData` 的 `patch` 一致),用于「统一保存」多字段。
11
+ * 例:`patchNode({ label: "x" })` 只更新 `node.data.label`;`patchNode({ label: "a", foo: 1 })` 同时更新多键;若存在 `node.data.config`,可 `patchNode({ config: { a: 1 } })` 做深度合并。
12
+ * **`patchNode({ data: { label } })` 表示更新 `node.data.data.label`**(仅当业务模型下确有名为 `data` 的嵌套对象时使用)。
13
+ */
14
+ patchNode: (patch: Record<string, unknown>) => void;
15
+ };
16
+ /** 选中边时传入统一配置渲染函数 */
17
+ export type WechenAgentConfigPanelEdgeContext = {
18
+ kind: "edge";
19
+ edge: Edge;
20
+ /**
21
+ * 与内置连线配置、ref `patchEdge` 一致:边对象 **顶层浅合并**;若传入 **`data`**,与现有 **`edge.data` 按键合并**。
22
+ */
23
+ patchEdge: (patch: Partial<Edge>) => void;
24
+ };
25
+ /** `renderConfigPanel` 的入参:按 `kind` 区分节点 / 边 */
26
+ export type WechenAgentConfigPanelContext = WechenAgentConfigPanelNodeContext | WechenAgentConfigPanelEdgeContext;
27
+ /**
28
+ * 统一自定义右侧配置区(节点 + 连线)。按 `ctx.kind` 与 `node.type` / `edge.type` 分支即可。
29
+ * 返回 **`undefined`** 时回退到内置节点配置 / 内置连线配置(与 `renderNodeConfig` 并存时,本函数优先)。
30
+ */
31
+ export type WechenAgentRenderConfigPanelFn = (ctx: WechenAgentConfigPanelContext) => ReactNode | undefined;
32
+ //# sourceMappingURL=wechenAgentConfigPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wechenAgentConfigPanel.d.ts","sourceRoot":"","sources":["../src/wechenAgentConfigPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,sBAAsB;AACtB,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,qBAAqB;AACrB,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX;;OAEG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,6BAA6B,GACrC,iCAAiC,GACjC,iCAAiC,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAC3C,GAAG,EAAE,6BAA6B,KAC/B,SAAS,GAAG,SAAS,CAAC"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "wechen-agent-editor-v1",
3
+ "version": "1.0.0",
4
+ "description": "Wechen Agent — executable AI flow orchestration editor (React Flow): nodes as modules, edges as execution order; Monaco + Ant Design, for npm",
5
+ "license": "MIT",
6
+ "keywords": [
7
+ "react",
8
+ "react-flow",
9
+ "xyflow",
10
+ "agent",
11
+ "workflow",
12
+ "orchestration",
13
+ "monaco-editor",
14
+ "antd",
15
+ "ai",
16
+ "flow-editor",
17
+ "low-code"
18
+ ],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/your-org/wechen-agent.git"
22
+ },
23
+ "bugs": {
24
+ "url": "https://github.com/your-org/wechen-agent/issues"
25
+ },
26
+ "homepage": "https://github.com/your-org/wechen-agent#readme",
27
+ "type": "module",
28
+ "files": [
29
+ "dist",
30
+ "LICENSE"
31
+ ],
32
+ "sideEffects": false,
33
+ "main": "./dist/index.js",
34
+ "module": "./dist/index.js",
35
+ "types": "./dist/index.d.ts",
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/index.d.ts",
39
+ "import": "./dist/index.js",
40
+ "default": "./dist/index.js"
41
+ }
42
+ },
43
+ "scripts": {
44
+ "test": "vitest run",
45
+ "build": "vite build",
46
+ "prepublishOnly": "npm run build",
47
+ "dev": "npm --prefix playground run dev",
48
+ "pack:check": "npm pack --dry-run",
49
+ "publish": "npm publish --access public"
50
+ },
51
+ "peerDependencies": {
52
+ "@monaco-editor/react": "^4.6.0",
53
+ "@xyflow/react": ">=12.0.0",
54
+ "antd": ">=5.0.0",
55
+ "monaco-editor": ">=0.45.0",
56
+ "react": ">=18.0.0",
57
+ "react-dom": ">=18.0.0"
58
+ },
59
+ "devDependencies": {
60
+ "@monaco-editor/react": "^4.6.0",
61
+ "@types/node": "^20.14.0",
62
+ "@types/react": "^18.3.12",
63
+ "@types/react-dom": "^18.3.1",
64
+ "@vitejs/plugin-react": "^4.3.4",
65
+ "@xyflow/react": "^12.3.6",
66
+ "antd": "^5.22.1",
67
+ "monaco-editor": "^0.45.0",
68
+ "react": "^18.3.1",
69
+ "react-dom": "^18.3.1",
70
+ "typescript": "~5.6.3",
71
+ "vite": "^5.4.11",
72
+ "vite-plugin-dts": "^4.3.0",
73
+ "vitest": "^2.1.9"
74
+ }
75
+ }