@aetherwing/fcp-drawio 0.2.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 (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/adapter.d.ts +38 -0
  4. package/dist/adapter.js +259 -0
  5. package/dist/adapter.js.map +1 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.js +6 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/layout/elk-layout.d.ts +49 -0
  10. package/dist/layout/elk-layout.js +144 -0
  11. package/dist/layout/elk-layout.js.map +1 -0
  12. package/dist/lib/drawio-cli.d.ts +22 -0
  13. package/dist/lib/drawio-cli.js +88 -0
  14. package/dist/lib/drawio-cli.js.map +1 -0
  15. package/dist/lib/node-types.d.ts +22 -0
  16. package/dist/lib/node-types.js +174 -0
  17. package/dist/lib/node-types.js.map +1 -0
  18. package/dist/lib/stencils/aws.d.ts +2 -0
  19. package/dist/lib/stencils/aws.js +69 -0
  20. package/dist/lib/stencils/aws.js.map +1 -0
  21. package/dist/lib/stencils/azure.d.ts +2 -0
  22. package/dist/lib/stencils/azure.js +54 -0
  23. package/dist/lib/stencils/azure.js.map +1 -0
  24. package/dist/lib/stencils/cisco.d.ts +2 -0
  25. package/dist/lib/stencils/cisco.js +30 -0
  26. package/dist/lib/stencils/cisco.js.map +1 -0
  27. package/dist/lib/stencils/gcp.d.ts +2 -0
  28. package/dist/lib/stencils/gcp.js +38 -0
  29. package/dist/lib/stencils/gcp.js.map +1 -0
  30. package/dist/lib/stencils/ibm.d.ts +2 -0
  31. package/dist/lib/stencils/ibm.js +32 -0
  32. package/dist/lib/stencils/ibm.js.map +1 -0
  33. package/dist/lib/stencils/index.d.ts +10 -0
  34. package/dist/lib/stencils/index.js +33 -0
  35. package/dist/lib/stencils/index.js.map +1 -0
  36. package/dist/lib/stencils/k8s.d.ts +2 -0
  37. package/dist/lib/stencils/k8s.js +32 -0
  38. package/dist/lib/stencils/k8s.js.map +1 -0
  39. package/dist/lib/stencils/types.d.ts +14 -0
  40. package/dist/lib/stencils/types.js +2 -0
  41. package/dist/lib/stencils/types.js.map +1 -0
  42. package/dist/lib/themes.d.ts +8 -0
  43. package/dist/lib/themes.js +32 -0
  44. package/dist/lib/themes.js.map +1 -0
  45. package/dist/model/defaults.d.ts +3 -0
  46. package/dist/model/defaults.js +26 -0
  47. package/dist/model/defaults.js.map +1 -0
  48. package/dist/model/diagram-model.d.ts +110 -0
  49. package/dist/model/diagram-model.js +938 -0
  50. package/dist/model/diagram-model.js.map +1 -0
  51. package/dist/model/event-log.d.ts +30 -0
  52. package/dist/model/event-log.js +112 -0
  53. package/dist/model/event-log.js.map +1 -0
  54. package/dist/model/id.d.ts +9 -0
  55. package/dist/model/id.js +35 -0
  56. package/dist/model/id.js.map +1 -0
  57. package/dist/model/reference-registry.d.ts +33 -0
  58. package/dist/model/reference-registry.js +143 -0
  59. package/dist/model/reference-registry.js.map +1 -0
  60. package/dist/model/spatial.d.ts +20 -0
  61. package/dist/model/spatial.js +59 -0
  62. package/dist/model/spatial.js.map +1 -0
  63. package/dist/parser/parse-op.d.ts +18 -0
  64. package/dist/parser/parse-op.js +430 -0
  65. package/dist/parser/parse-op.js.map +1 -0
  66. package/dist/parser/resolve-ref.d.ts +27 -0
  67. package/dist/parser/resolve-ref.js +232 -0
  68. package/dist/parser/resolve-ref.js.map +1 -0
  69. package/dist/parser/tokenizer.d.ts +6 -0
  70. package/dist/parser/tokenizer.js +7 -0
  71. package/dist/parser/tokenizer.js.map +1 -0
  72. package/dist/serialization/connector-intelligence.d.ts +35 -0
  73. package/dist/serialization/connector-intelligence.js +336 -0
  74. package/dist/serialization/connector-intelligence.js.map +1 -0
  75. package/dist/serialization/deserialize.d.ts +6 -0
  76. package/dist/serialization/deserialize.js +511 -0
  77. package/dist/serialization/deserialize.js.map +1 -0
  78. package/dist/serialization/serialize.d.ts +15 -0
  79. package/dist/serialization/serialize.js +332 -0
  80. package/dist/serialization/serialize.js.map +1 -0
  81. package/dist/server/intent-layer.d.ts +48 -0
  82. package/dist/server/intent-layer.js +1322 -0
  83. package/dist/server/intent-layer.js.map +1 -0
  84. package/dist/server/mcp-server.d.ts +7 -0
  85. package/dist/server/mcp-server.js +26 -0
  86. package/dist/server/mcp-server.js.map +1 -0
  87. package/dist/server/model-map.d.ts +8 -0
  88. package/dist/server/model-map.js +240 -0
  89. package/dist/server/model-map.js.map +1 -0
  90. package/dist/server/query-handler.d.ts +19 -0
  91. package/dist/server/query-handler.js +148 -0
  92. package/dist/server/query-handler.js.map +1 -0
  93. package/dist/server/response-formatter.d.ts +56 -0
  94. package/dist/server/response-formatter.js +351 -0
  95. package/dist/server/response-formatter.js.map +1 -0
  96. package/dist/server/session-handler.d.ts +6 -0
  97. package/dist/server/session-handler.js +127 -0
  98. package/dist/server/session-handler.js.map +1 -0
  99. package/dist/types/index.d.ts +238 -0
  100. package/dist/types/index.js +3 -0
  101. package/dist/types/index.js.map +1 -0
  102. package/dist/verb-specs.d.ts +6 -0
  103. package/dist/verb-specs.js +144 -0
  104. package/dist/verb-specs.js.map +1 -0
  105. package/package.json +39 -0
@@ -0,0 +1,238 @@
1
+ export type ShapeType = "box" | "svc" | "circle" | "decision" | "db" | "api" | "cloud" | "actor" | "doc" | "queue" | "triangle" | "process";
2
+ export type ArrowType = "arrow" | "open-arrow" | "diamond" | "circle" | "crow-foot" | "none";
3
+ export type EdgeStyleType = "solid" | "dashed" | "dotted" | "animated" | "thick" | "curved" | "orthogonal";
4
+ export type ArrowOperator = "->" | "<->" | "--";
5
+ export type Direction = "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
6
+ export type FlowDirection = "TB" | "LR" | "BT" | "RL";
7
+ export type ThemeName = "blue" | "green" | "red" | "yellow" | "orange" | "purple" | "gray" | "dark" | "white";
8
+ export interface Bounds {
9
+ x: number;
10
+ y: number;
11
+ width: number;
12
+ height: number;
13
+ }
14
+ export interface Point {
15
+ x: number;
16
+ y: number;
17
+ }
18
+ export interface StyleSet {
19
+ fillColor: string | null;
20
+ strokeColor: string | null;
21
+ fontColor: string | null;
22
+ fontSize: number | null;
23
+ fontFamily: string | null;
24
+ fontStyle: number | null;
25
+ rounded: boolean;
26
+ dashed: boolean;
27
+ shadow: boolean;
28
+ opacity: number;
29
+ align: string | null;
30
+ verticalAlign: string | null;
31
+ [key: string]: unknown;
32
+ }
33
+ export interface EdgeStyleSet extends StyleSet {
34
+ edgeStyle: string;
35
+ curved: boolean;
36
+ flowAnimation: boolean;
37
+ dotted: boolean;
38
+ }
39
+ export interface ThemeColors {
40
+ fill: string;
41
+ stroke: string;
42
+ fontColor?: string;
43
+ }
44
+ export interface ShapeMetadata {
45
+ tooltip?: string;
46
+ badges?: Badge[];
47
+ custom?: Record<string, unknown>;
48
+ }
49
+ export interface Badge {
50
+ text: string;
51
+ position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
52
+ }
53
+ export interface Shape {
54
+ id: string;
55
+ label: string;
56
+ type: ShapeType;
57
+ bounds: Bounds;
58
+ style: StyleSet;
59
+ parentGroup: string | null;
60
+ layer: string;
61
+ metadata: ShapeMetadata;
62
+ baseStyleOverride?: string;
63
+ createdAt: number;
64
+ modifiedAt: number;
65
+ }
66
+ export interface Edge {
67
+ id: string;
68
+ sourceId: string;
69
+ targetId: string;
70
+ label: string | null;
71
+ style: EdgeStyleSet;
72
+ waypoints: Point[];
73
+ sourceArrow: ArrowType;
74
+ targetArrow: ArrowType;
75
+ createdAt: number;
76
+ modifiedAt: number;
77
+ }
78
+ export interface Group {
79
+ id: string;
80
+ name: string;
81
+ memberIds: Set<string>;
82
+ isContainer: boolean;
83
+ collapsed: boolean;
84
+ bounds: Bounds;
85
+ style: StyleSet;
86
+ }
87
+ export interface Layer {
88
+ id: string;
89
+ name: string;
90
+ visible: boolean;
91
+ locked: boolean;
92
+ order: number;
93
+ }
94
+ export interface Page {
95
+ id: string;
96
+ name: string;
97
+ shapes: Map<string, Shape>;
98
+ edges: Map<string, Edge>;
99
+ groups: Map<string, Group>;
100
+ layers: Layer[];
101
+ defaultLayer: string;
102
+ flowDirection?: FlowDirection;
103
+ }
104
+ export interface DiagramMetadata {
105
+ host: string;
106
+ modified: string;
107
+ version: string;
108
+ }
109
+ export interface CustomType {
110
+ name: string;
111
+ base: ShapeType;
112
+ theme?: ThemeName;
113
+ badge?: string;
114
+ defaultSize?: {
115
+ width: number;
116
+ height: number;
117
+ };
118
+ }
119
+ export interface CustomTheme {
120
+ name: string;
121
+ fill: string;
122
+ stroke: string;
123
+ fontColor?: string;
124
+ }
125
+ export interface Diagram {
126
+ id: string;
127
+ title: string;
128
+ filePath: string | null;
129
+ pages: Page[];
130
+ activePage: string;
131
+ customTypes: Map<string, CustomType>;
132
+ customThemes: Map<string, CustomTheme>;
133
+ loadedStencilPacks: Set<string>;
134
+ metadata: DiagramMetadata;
135
+ }
136
+ export type DiagramEvent = {
137
+ type: "shape_created";
138
+ shape: Shape;
139
+ } | {
140
+ type: "shape_modified";
141
+ id: string;
142
+ before: Partial<Shape>;
143
+ after: Partial<Shape>;
144
+ } | {
145
+ type: "shape_deleted";
146
+ shape: Shape;
147
+ } | {
148
+ type: "edge_created";
149
+ edge: Edge;
150
+ } | {
151
+ type: "edge_modified";
152
+ id: string;
153
+ before: Partial<Edge>;
154
+ after: Partial<Edge>;
155
+ } | {
156
+ type: "edge_deleted";
157
+ edge: Edge;
158
+ } | {
159
+ type: "group_created";
160
+ group: Group;
161
+ } | {
162
+ type: "group_modified";
163
+ id: string;
164
+ before: Partial<Group>;
165
+ after: Partial<Group>;
166
+ } | {
167
+ type: "group_dissolved";
168
+ group: Group;
169
+ } | {
170
+ type: "page_added";
171
+ page: Page;
172
+ } | {
173
+ type: "page_removed";
174
+ page: Page;
175
+ } | {
176
+ type: "layer_created";
177
+ layer: Layer;
178
+ pageId: string;
179
+ } | {
180
+ type: "layer_modified";
181
+ pageId: string;
182
+ layerId: string;
183
+ before: Partial<Layer>;
184
+ after: Partial<Layer>;
185
+ } | {
186
+ type: "flow_direction_changed";
187
+ pageId: string;
188
+ before: string | undefined;
189
+ after: string;
190
+ } | {
191
+ type: "title_changed";
192
+ before: string;
193
+ after: string;
194
+ } | {
195
+ type: "checkpoint";
196
+ name: string;
197
+ eventIndex: number;
198
+ };
199
+ export interface EventLog {
200
+ events: DiagramEvent[];
201
+ cursor: number;
202
+ checkpoints: Map<string, number>;
203
+ }
204
+ export type Verb = "add" | "remove" | "define" | "connect" | "disconnect" | "style" | "label" | "badge" | "move" | "resize" | "swap" | "layout" | "orient" | "group" | "ungroup" | "layer" | "page" | "checkpoint" | "title" | "load";
205
+ export interface KeyValue {
206
+ key: string;
207
+ value: string;
208
+ }
209
+ export interface ParsedOp {
210
+ verb: Verb;
211
+ raw: string;
212
+ type?: string;
213
+ target?: string;
214
+ targets?: string[];
215
+ arrows?: ArrowOperator[];
216
+ params: Map<string, string>;
217
+ selector?: string;
218
+ subcommand?: string;
219
+ }
220
+ export type SelectorType = "type" | "group" | "connected" | "page" | "layer" | "recent" | "all" | "orphan";
221
+ export interface Selector {
222
+ kind: SelectorType;
223
+ value?: string;
224
+ }
225
+ export interface OpResult {
226
+ success: boolean;
227
+ message: string;
228
+ warnings?: string[];
229
+ suggestion?: string;
230
+ }
231
+ export interface NodeTypeDefinition {
232
+ shorthand: ShapeType;
233
+ drawioShape: string;
234
+ baseStyle: string;
235
+ defaultWidth: number;
236
+ defaultHeight: number;
237
+ description: string;
238
+ }
@@ -0,0 +1,3 @@
1
+ // ── Shape Types ──────────────────────────────────────────────
2
+ export {};
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,gEAAgE"}
@@ -0,0 +1,6 @@
1
+ import type { VerbSpec } from "@aetherwing/fcp-core";
2
+ /**
3
+ * All verb specifications for the drawio FCP domain.
4
+ * Used for reference card generation and verb validation.
5
+ */
6
+ export declare const DRAWIO_VERB_SPECS: VerbSpec[];
@@ -0,0 +1,144 @@
1
+ /**
2
+ * All verb specifications for the drawio FCP domain.
3
+ * Used for reference card generation and verb validation.
4
+ */
5
+ export const DRAWIO_VERB_SPECS = [
6
+ // ── Shapes ────────────────────────────────────────────────
7
+ {
8
+ verb: "add",
9
+ syntax: "add TYPE LABEL [theme:T] [near:REF dir:DIR] [at:X,Y] [size:WxH] [label:\"Display Name\"]",
10
+ category: "shapes",
11
+ params: ["theme", "near", "dir", "at", "size", "label", "in", "count"],
12
+ description: "Add a shape to the diagram",
13
+ },
14
+ {
15
+ verb: "remove",
16
+ syntax: "remove REF | remove @SELECTOR",
17
+ category: "shapes",
18
+ description: "Remove a shape or shapes matching a selector",
19
+ },
20
+ {
21
+ verb: "define",
22
+ syntax: "define NAME base:TYPE [theme:T] [badge:\"text\"] [size:WxH]",
23
+ category: "shapes",
24
+ params: ["base", "theme", "badge", "size", "name", "fill", "stroke", "font-color"],
25
+ description: "Define a custom type or theme",
26
+ },
27
+ // ── Connections ────────────────────────────────────────────
28
+ {
29
+ verb: "connect",
30
+ syntax: "connect SRC ARROW TGT [label:\"text\"] [style:STYLE] [exit:FACE entry:FACE]",
31
+ category: "connections",
32
+ params: ["label", "style", "exit", "entry", "source-arrow", "target-arrow"],
33
+ description: "Connect two shapes with an edge",
34
+ },
35
+ {
36
+ verb: "disconnect",
37
+ syntax: "disconnect SRC -> TGT",
38
+ category: "connections",
39
+ description: "Remove an edge between two shapes",
40
+ },
41
+ // ── Appearance ─────────────────────────────────────────────
42
+ {
43
+ verb: "style",
44
+ syntax: "style REF [fill:#HEX] [stroke:#HEX] [font:#HEX] [fontSize:N] [bold] [italic]",
45
+ category: "appearance",
46
+ params: ["fill", "stroke", "font", "font-color", "fontSize", "font-size", "opacity", "rounded", "dashed", "shadow", "font-family", "align", "valign", "theme"],
47
+ description: "Change style properties of a shape or selector",
48
+ },
49
+ {
50
+ verb: "label",
51
+ syntax: "label REF \"new text\" | label SRC -> TGT \"new text\"",
52
+ category: "appearance",
53
+ description: "Rename a shape or relabel an edge",
54
+ },
55
+ {
56
+ verb: "badge",
57
+ syntax: "badge REF \"text\" [pos:POSITION]",
58
+ category: "appearance",
59
+ params: ["pos"],
60
+ description: "Add a badge to a shape",
61
+ },
62
+ // ── Position ───────────────────────────────────────────────
63
+ {
64
+ verb: "move",
65
+ syntax: "move REF to:X,Y | to:REGION | near:REF dir:DIR",
66
+ category: "position",
67
+ params: ["to", "near", "dir", "strict"],
68
+ description: "Move a shape or group",
69
+ },
70
+ {
71
+ verb: "resize",
72
+ syntax: "resize REF to:WxH",
73
+ category: "position",
74
+ params: ["to"],
75
+ description: "Resize a shape",
76
+ },
77
+ {
78
+ verb: "swap",
79
+ syntax: "swap REF REF",
80
+ category: "position",
81
+ description: "Exchange positions of two shapes",
82
+ },
83
+ {
84
+ verb: "layout",
85
+ syntax: "layout @all algo:layered|force|tree dir:TB|LR|BT|RL [spacing:N]",
86
+ category: "position",
87
+ params: ["algo", "dir", "spacing"],
88
+ description: "Apply automatic layout to the diagram",
89
+ },
90
+ {
91
+ verb: "orient",
92
+ syntax: "orient TB|LR|BT|RL",
93
+ category: "position",
94
+ description: "Set the page flow direction",
95
+ },
96
+ // ── Organization ───────────────────────────────────────────
97
+ {
98
+ verb: "group",
99
+ syntax: "group REF REF ... as:\"Group Name\"",
100
+ category: "organization",
101
+ params: ["as", "label", "theme"],
102
+ description: "Group shapes together",
103
+ },
104
+ {
105
+ verb: "ungroup",
106
+ syntax: "ungroup \"Group Name\"",
107
+ category: "organization",
108
+ description: "Dissolve a group",
109
+ },
110
+ // ── Pages & Layers ─────────────────────────────────────────
111
+ {
112
+ verb: "page",
113
+ syntax: "page add|switch|remove|list \"Name\"",
114
+ category: "structure",
115
+ description: "Manage diagram pages",
116
+ },
117
+ {
118
+ verb: "layer",
119
+ syntax: "layer create|switch|show|hide|list \"Name\"",
120
+ category: "structure",
121
+ description: "Manage diagram layers",
122
+ },
123
+ // ── Meta ───────────────────────────────────────────────────
124
+ {
125
+ verb: "checkpoint",
126
+ syntax: "checkpoint NAME",
127
+ category: "meta",
128
+ description: "Create a named snapshot for undo",
129
+ },
130
+ {
131
+ verb: "title",
132
+ syntax: "title \"Diagram Title\"",
133
+ category: "meta",
134
+ description: "Set the diagram title",
135
+ },
136
+ {
137
+ verb: "load",
138
+ syntax: "load list | load PACK",
139
+ category: "meta",
140
+ params: [],
141
+ description: "Load a stencil pack (aws, azure, gcp, k8s, cisco, ibm)",
142
+ },
143
+ ];
144
+ //# sourceMappingURL=verb-specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verb-specs.js","sourceRoot":"","sources":["../src/verb-specs.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@aetherwing/fcp-drawio",
3
+ "version": "0.2.0",
4
+ "description": "MCP server for creating and editing draw.io diagrams through intent-level commands",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": ["dist"],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "dev": "tsc --watch",
18
+ "test": "vitest run",
19
+ "test:watch": "vitest",
20
+ "start": "node dist/index.js"
21
+ },
22
+ "dependencies": {
23
+ "@aetherwing/fcp-core": "^0.1.0",
24
+ "@modelcontextprotocol/sdk": "^1.27.1",
25
+ "elkjs": "^0.11.0",
26
+ "fast-xml-parser": "^4.5.1"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^22.15.2",
30
+ "typescript": "^5.8.3",
31
+ "vitest": "^3.1.1"
32
+ },
33
+ "engines": {
34
+ "node": ">=22"
35
+ },
36
+ "license": "MIT",
37
+ "repository": { "type": "git", "url": "https://github.com/aetherwing-io/fcp-drawio" },
38
+ "keywords": ["drawio", "diagrams", "architecture", "mcp", "fcp"]
39
+ }