@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.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/adapter.d.ts +38 -0
- package/dist/adapter.js +259 -0
- package/dist/adapter.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/elk-layout.d.ts +49 -0
- package/dist/layout/elk-layout.js +144 -0
- package/dist/layout/elk-layout.js.map +1 -0
- package/dist/lib/drawio-cli.d.ts +22 -0
- package/dist/lib/drawio-cli.js +88 -0
- package/dist/lib/drawio-cli.js.map +1 -0
- package/dist/lib/node-types.d.ts +22 -0
- package/dist/lib/node-types.js +174 -0
- package/dist/lib/node-types.js.map +1 -0
- package/dist/lib/stencils/aws.d.ts +2 -0
- package/dist/lib/stencils/aws.js +69 -0
- package/dist/lib/stencils/aws.js.map +1 -0
- package/dist/lib/stencils/azure.d.ts +2 -0
- package/dist/lib/stencils/azure.js +54 -0
- package/dist/lib/stencils/azure.js.map +1 -0
- package/dist/lib/stencils/cisco.d.ts +2 -0
- package/dist/lib/stencils/cisco.js +30 -0
- package/dist/lib/stencils/cisco.js.map +1 -0
- package/dist/lib/stencils/gcp.d.ts +2 -0
- package/dist/lib/stencils/gcp.js +38 -0
- package/dist/lib/stencils/gcp.js.map +1 -0
- package/dist/lib/stencils/ibm.d.ts +2 -0
- package/dist/lib/stencils/ibm.js +32 -0
- package/dist/lib/stencils/ibm.js.map +1 -0
- package/dist/lib/stencils/index.d.ts +10 -0
- package/dist/lib/stencils/index.js +33 -0
- package/dist/lib/stencils/index.js.map +1 -0
- package/dist/lib/stencils/k8s.d.ts +2 -0
- package/dist/lib/stencils/k8s.js +32 -0
- package/dist/lib/stencils/k8s.js.map +1 -0
- package/dist/lib/stencils/types.d.ts +14 -0
- package/dist/lib/stencils/types.js +2 -0
- package/dist/lib/stencils/types.js.map +1 -0
- package/dist/lib/themes.d.ts +8 -0
- package/dist/lib/themes.js +32 -0
- package/dist/lib/themes.js.map +1 -0
- package/dist/model/defaults.d.ts +3 -0
- package/dist/model/defaults.js +26 -0
- package/dist/model/defaults.js.map +1 -0
- package/dist/model/diagram-model.d.ts +110 -0
- package/dist/model/diagram-model.js +938 -0
- package/dist/model/diagram-model.js.map +1 -0
- package/dist/model/event-log.d.ts +30 -0
- package/dist/model/event-log.js +112 -0
- package/dist/model/event-log.js.map +1 -0
- package/dist/model/id.d.ts +9 -0
- package/dist/model/id.js +35 -0
- package/dist/model/id.js.map +1 -0
- package/dist/model/reference-registry.d.ts +33 -0
- package/dist/model/reference-registry.js +143 -0
- package/dist/model/reference-registry.js.map +1 -0
- package/dist/model/spatial.d.ts +20 -0
- package/dist/model/spatial.js +59 -0
- package/dist/model/spatial.js.map +1 -0
- package/dist/parser/parse-op.d.ts +18 -0
- package/dist/parser/parse-op.js +430 -0
- package/dist/parser/parse-op.js.map +1 -0
- package/dist/parser/resolve-ref.d.ts +27 -0
- package/dist/parser/resolve-ref.js +232 -0
- package/dist/parser/resolve-ref.js.map +1 -0
- package/dist/parser/tokenizer.d.ts +6 -0
- package/dist/parser/tokenizer.js +7 -0
- package/dist/parser/tokenizer.js.map +1 -0
- package/dist/serialization/connector-intelligence.d.ts +35 -0
- package/dist/serialization/connector-intelligence.js +336 -0
- package/dist/serialization/connector-intelligence.js.map +1 -0
- package/dist/serialization/deserialize.d.ts +6 -0
- package/dist/serialization/deserialize.js +511 -0
- package/dist/serialization/deserialize.js.map +1 -0
- package/dist/serialization/serialize.d.ts +15 -0
- package/dist/serialization/serialize.js +332 -0
- package/dist/serialization/serialize.js.map +1 -0
- package/dist/server/intent-layer.d.ts +48 -0
- package/dist/server/intent-layer.js +1322 -0
- package/dist/server/intent-layer.js.map +1 -0
- package/dist/server/mcp-server.d.ts +7 -0
- package/dist/server/mcp-server.js +26 -0
- package/dist/server/mcp-server.js.map +1 -0
- package/dist/server/model-map.d.ts +8 -0
- package/dist/server/model-map.js +240 -0
- package/dist/server/model-map.js.map +1 -0
- package/dist/server/query-handler.d.ts +19 -0
- package/dist/server/query-handler.js +148 -0
- package/dist/server/query-handler.js.map +1 -0
- package/dist/server/response-formatter.d.ts +56 -0
- package/dist/server/response-formatter.js +351 -0
- package/dist/server/response-formatter.js.map +1 -0
- package/dist/server/session-handler.d.ts +6 -0
- package/dist/server/session-handler.js +127 -0
- package/dist/server/session-handler.js.map +1 -0
- package/dist/types/index.d.ts +238 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/verb-specs.d.ts +6 -0
- package/dist/verb-specs.js +144 -0
- package/dist/verb-specs.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-layer.js","sourceRoot":"","sources":["../../src/server/intent-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { IntentLayer } from "./intent-layer.js";
|
|
3
|
+
export declare function createServer(): {
|
|
4
|
+
server: McpServer;
|
|
5
|
+
intent: IntentLayer;
|
|
6
|
+
};
|
|
7
|
+
export declare function startServer(): Promise<void>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
2
|
+
import { createFcpServer } from "@aetherwing/fcp-core";
|
|
3
|
+
import { DrawioAdapter } from "../adapter.js";
|
|
4
|
+
import { DRAWIO_VERB_SPECS } from "../verb-specs.js";
|
|
5
|
+
import { detectDrawioCLI } from "../lib/drawio-cli.js";
|
|
6
|
+
import { buildReferenceCardSections } from "./model-map.js";
|
|
7
|
+
export function createServer() {
|
|
8
|
+
const drawioCliPath = detectDrawioCLI();
|
|
9
|
+
const adapter = new DrawioAdapter({ drawioCliPath });
|
|
10
|
+
const intent = adapter.intentLayer;
|
|
11
|
+
const server = createFcpServer({
|
|
12
|
+
domain: "drawio",
|
|
13
|
+
adapter,
|
|
14
|
+
verbs: DRAWIO_VERB_SPECS,
|
|
15
|
+
referenceCard: {
|
|
16
|
+
sections: buildReferenceCardSections(drawioCliPath !== null),
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
return { server, intent };
|
|
20
|
+
}
|
|
21
|
+
export async function startServer() {
|
|
22
|
+
const { server } = createServer();
|
|
23
|
+
const transport = new StdioServerTransport();
|
|
24
|
+
await server.connect(transport);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,UAAU,YAAY;IAC1B,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAEnC,MAAM,MAAM,GAAG,eAAe,CAG5B;QACA,MAAM,EAAE,QAAQ;QAChB,OAAO;QACP,KAAK,EAAE,iBAAiB;QACxB,aAAa,EAAE;YACb,QAAQ,EAAE,0BAA0B,CAAC,aAAa,KAAK,IAAI,CAAC;SAC7D;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CustomType, CustomTheme } from "../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Build domain-specific sections for the VerbRegistry reference card.
|
|
4
|
+
* Used by createFcpServer() to append drawio-specific reference material
|
|
5
|
+
* after the verb listing.
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildReferenceCardSections(snapshotAvailable: boolean): Record<string, string>;
|
|
8
|
+
export declare function getModelMap(customTypes: Map<string, CustomType>, customThemes?: Map<string, CustomTheme>, loadedStencilPacks?: Set<string>, snapshotAvailable?: boolean): string;
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { NODE_TYPES } from "../lib/node-types.js";
|
|
2
|
+
import { THEMES } from "../lib/themes.js";
|
|
3
|
+
import { getStencilPack, listStencilPacks } from "../lib/stencils/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* Generate the NODE TYPES section from the runtime registry.
|
|
6
|
+
* Matches the existing compact format: " shorthand description"
|
|
7
|
+
*/
|
|
8
|
+
function generateNodeTypesSection() {
|
|
9
|
+
const lines = [];
|
|
10
|
+
for (const [name, def] of Object.entries(NODE_TYPES)) {
|
|
11
|
+
lines.push(` ${name.padEnd(10)} ${def.description.toLowerCase()}`);
|
|
12
|
+
}
|
|
13
|
+
return lines.join("\n");
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Generate the THEMES section from the runtime registry.
|
|
17
|
+
* Pairs themes on the same line for compactness.
|
|
18
|
+
*/
|
|
19
|
+
function generateThemesSection() {
|
|
20
|
+
const entries = Object.entries(THEMES);
|
|
21
|
+
const lines = [];
|
|
22
|
+
for (let i = 0; i < entries.length; i += 2) {
|
|
23
|
+
const [name1, colors1] = entries[i];
|
|
24
|
+
let line = ` ${name1.padEnd(10)} ${colors1.fill} / ${colors1.stroke}`;
|
|
25
|
+
if (colors1.fontColor)
|
|
26
|
+
line += ` (light text)`;
|
|
27
|
+
if (i + 1 < entries.length) {
|
|
28
|
+
const [name2, colors2] = entries[i + 1];
|
|
29
|
+
line += ` ${name2.padEnd(8)} ${colors2.fill} / ${colors2.stroke}`;
|
|
30
|
+
if (colors2.fontColor)
|
|
31
|
+
line += ` (light text)`;
|
|
32
|
+
}
|
|
33
|
+
lines.push(line);
|
|
34
|
+
}
|
|
35
|
+
return lines.join("\n");
|
|
36
|
+
}
|
|
37
|
+
function buildModelMap() {
|
|
38
|
+
return `DRAW.IO FCP — MODEL MAP
|
|
39
|
+
|
|
40
|
+
DOCUMENT: mxfile > diagram[name] > mxGraphModel > root > mxCell[]
|
|
41
|
+
Cells 0,1 always present. Tool manages all XML structure and IDs.
|
|
42
|
+
|
|
43
|
+
NODE TYPES:
|
|
44
|
+
${generateNodeTypesSection()}
|
|
45
|
+
|
|
46
|
+
THEMES (fill / stroke):
|
|
47
|
+
${generateThemesSection()}
|
|
48
|
+
|
|
49
|
+
EDGE STYLES: solid, dashed (- - -), dotted (· · ·), animated, thick, curved, orthogonal
|
|
50
|
+
ARROWS: -> (directed), <-> (bidirectional), -- (undirected)
|
|
51
|
+
ARROW HEADS: arrow, open-arrow, diamond, circle, crow-foot, none
|
|
52
|
+
|
|
53
|
+
OPERATIONS:
|
|
54
|
+
|
|
55
|
+
ADD
|
|
56
|
+
add TYPE LABEL [theme:T] [near:REF dir:DIR] [at:X,Y] [size:WxH] [label:"Display Name"]
|
|
57
|
+
label: overrides display text (LABEL remains the ref until label: is set)
|
|
58
|
+
Ex: add svc AuthService theme:blue near:Gateway dir:right
|
|
59
|
+
Ex: add db Postgres label:"PostgreSQL 16" theme:blue
|
|
60
|
+
|
|
61
|
+
CONNECT
|
|
62
|
+
connect SRC ARROW TGT [label:"text"] [style:STYLE] [exit:FACE entry:FACE]
|
|
63
|
+
FACE = top | bottom | left | right
|
|
64
|
+
Ex: connect AuthService -> UserDB label:queries style:dashed
|
|
65
|
+
Ex: connect Client -> Server label:HTTPS style:solid exit:bottom entry:top
|
|
66
|
+
|
|
67
|
+
DISCONNECT
|
|
68
|
+
disconnect SRC -> TGT
|
|
69
|
+
Ex: disconnect AuthService -> UserDB
|
|
70
|
+
|
|
71
|
+
LABEL
|
|
72
|
+
label REF "new text" rename shape
|
|
73
|
+
label SRC -> TGT "new text" relabel edge
|
|
74
|
+
Ex: label Gateway "API Gateway v2"
|
|
75
|
+
Ex: label Auth -> DB "read/write"
|
|
76
|
+
|
|
77
|
+
STYLE
|
|
78
|
+
style REF [fill:#HEX] [stroke:#HEX] [font:#HEX] [fontSize:N]
|
|
79
|
+
style REF [bold] [italic] [underline] [no-bold] [no-italic] [no-underline]
|
|
80
|
+
style REF [font-family:NAME] [align:left|center|right] [valign:top|middle|bottom]
|
|
81
|
+
style @SELECTOR [same params]
|
|
82
|
+
Ex: style AuthService fill:#ff0000 bold fontSize:16
|
|
83
|
+
Ex: style @type:db font-family:Courier align:left
|
|
84
|
+
|
|
85
|
+
MOVE
|
|
86
|
+
move REF to:X,Y | to:REGION | near:REF dir:DIR [strict:true]
|
|
87
|
+
move @group:NAME to:REGION|X,Y
|
|
88
|
+
Regions: top-left, top-center, top-right, middle-left, center,
|
|
89
|
+
middle-right, bottom-left, bottom-center, bottom-right
|
|
90
|
+
Collision prevention ON by default; strict:true disables it
|
|
91
|
+
|
|
92
|
+
RESIZE
|
|
93
|
+
resize REF to:WxH
|
|
94
|
+
Ex: resize AuthService to:200x80
|
|
95
|
+
|
|
96
|
+
REMOVE
|
|
97
|
+
remove REF | remove @SELECTOR
|
|
98
|
+
Ex: remove OldService
|
|
99
|
+
|
|
100
|
+
SWAP
|
|
101
|
+
swap REF REF (exchange positions)
|
|
102
|
+
|
|
103
|
+
BADGE
|
|
104
|
+
badge REF "text" [pos:POSITION]
|
|
105
|
+
POSITION = top-left | top-right | bottom-left | bottom-right
|
|
106
|
+
Ex: badge AuthService "v2" pos:top-right
|
|
107
|
+
|
|
108
|
+
GROUP / UNGROUP
|
|
109
|
+
group REF REF ... as:"Group Name"
|
|
110
|
+
ungroup "Group Name"
|
|
111
|
+
Ex: group AuthService UserDB as:"Backend"
|
|
112
|
+
|
|
113
|
+
LAYOUT
|
|
114
|
+
layout @all algo:layered|force|tree dir:TB|LR|BT|RL [spacing:N]
|
|
115
|
+
Ex: layout @all algo:layered dir:TB spacing:60
|
|
116
|
+
|
|
117
|
+
ORIENT
|
|
118
|
+
orient TB|LR|BT|RL (sets page flow direction)
|
|
119
|
+
|
|
120
|
+
DEFINE
|
|
121
|
+
define NAME base:TYPE [theme:T] [badge:"text"] [size:WxH]
|
|
122
|
+
Ex: define microservice base:svc theme:blue badge:μ
|
|
123
|
+
|
|
124
|
+
LOAD (stencil packs)
|
|
125
|
+
load list show available stencil packs
|
|
126
|
+
load PACK activate a stencil pack (aws, azure, gcp, k8s, cisco, ibm)
|
|
127
|
+
Ex: load aws then: add lambda MyFunc
|
|
128
|
+
|
|
129
|
+
PAGE
|
|
130
|
+
page add|switch|remove|list "Name"
|
|
131
|
+
|
|
132
|
+
LAYER
|
|
133
|
+
layer create|switch|show|hide|list "Name"
|
|
134
|
+
|
|
135
|
+
CHECKPOINT
|
|
136
|
+
checkpoint NAME (snapshot; undo to:NAME restores)
|
|
137
|
+
|
|
138
|
+
TITLE
|
|
139
|
+
title "Diagram Title"
|
|
140
|
+
|
|
141
|
+
SELECTORS: @type:TYPE, @group:NAME, @connected:REF, @recent, @recent:N,
|
|
142
|
+
@all, @orphan, @page:NAME, @layer:NAME
|
|
143
|
+
|
|
144
|
+
RESPONSE PREFIXES (read-only, tool-generated):
|
|
145
|
+
+ shape created ~ edge created/modified
|
|
146
|
+
* shape modified - shape/edge removed
|
|
147
|
+
! group operation @ layout/position change
|
|
148
|
+
|
|
149
|
+
CONVENTIONS:
|
|
150
|
+
- Labels are unique identifiers — no ID management needed
|
|
151
|
+
- Position auto-computed if omitted (near last created shape)
|
|
152
|
+
- near:REF dir:DIRECTION places relative to existing shape
|
|
153
|
+
- Themes and types are expanded by the tool into full draw.io styles
|
|
154
|
+
- All XML structure, IDs, and geometry handled by the tool
|
|
155
|
+
- Custom types (via define) are included in drawio_help after creation`;
|
|
156
|
+
}
|
|
157
|
+
const MODEL_MAP_BASE = buildModelMap();
|
|
158
|
+
/**
|
|
159
|
+
* Build domain-specific sections for the VerbRegistry reference card.
|
|
160
|
+
* Used by createFcpServer() to append drawio-specific reference material
|
|
161
|
+
* after the verb listing.
|
|
162
|
+
*/
|
|
163
|
+
export function buildReferenceCardSections(snapshotAvailable) {
|
|
164
|
+
const sections = {};
|
|
165
|
+
sections["Node Types"] = generateNodeTypesSection();
|
|
166
|
+
sections["Themes (fill / stroke)"] = generateThemesSection();
|
|
167
|
+
sections["Edge Styles"] = ` solid, dashed (- - -), dotted (· · ·), animated, thick, curved, orthogonal
|
|
168
|
+
Arrows: -> (directed), <-> (bidirectional), -- (undirected)
|
|
169
|
+
Arrow heads: arrow, open-arrow, diamond, circle, crow-foot, none`;
|
|
170
|
+
sections["Selectors"] = ` @type:TYPE, @group:NAME, @connected:REF, @recent, @recent:N,
|
|
171
|
+
@all, @orphan, @page:NAME, @layer:NAME`;
|
|
172
|
+
sections["Response Prefixes"] = ` + shape created ~ edge created/modified
|
|
173
|
+
* shape modified - shape/edge removed
|
|
174
|
+
! group operation @ layout/position change`;
|
|
175
|
+
sections["Conventions"] = ` - Labels are unique identifiers - no ID management needed
|
|
176
|
+
- Position auto-computed if omitted (near last created shape)
|
|
177
|
+
- near:REF dir:DIRECTION places relative to existing shape
|
|
178
|
+
- All XML structure, IDs, and geometry handled by the tool
|
|
179
|
+
- Call drawio_help for full reference with examples`;
|
|
180
|
+
if (snapshotAvailable) {
|
|
181
|
+
sections["Snapshot"] = ` snapshot render diagram to PNG for visual review
|
|
182
|
+
snapshot width:800 custom width (default 1200)
|
|
183
|
+
snapshot page:2 specific page (1-based)`;
|
|
184
|
+
}
|
|
185
|
+
return sections;
|
|
186
|
+
}
|
|
187
|
+
export function getModelMap(customTypes, customThemes, loadedStencilPacks, snapshotAvailable) {
|
|
188
|
+
let result = MODEL_MAP_BASE;
|
|
189
|
+
// Always show stencil loading instructions
|
|
190
|
+
const availablePacks = listStencilPacks().map(p => p.id).join(", ");
|
|
191
|
+
result += `\n\nSTENCILS:
|
|
192
|
+
load list show available stencil packs
|
|
193
|
+
load PACK activate a stencil pack (${availablePacks})`;
|
|
194
|
+
// Show loaded stencil pack details
|
|
195
|
+
if (loadedStencilPacks && loadedStencilPacks.size > 0) {
|
|
196
|
+
for (const packId of loadedStencilPacks) {
|
|
197
|
+
const pack = getStencilPack(packId);
|
|
198
|
+
if (!pack)
|
|
199
|
+
continue;
|
|
200
|
+
// Group entries by category
|
|
201
|
+
const categories = new Map();
|
|
202
|
+
for (const entry of pack.entries) {
|
|
203
|
+
const cat = categories.get(entry.category) ?? [];
|
|
204
|
+
cat.push(entry.id);
|
|
205
|
+
categories.set(entry.category, cat);
|
|
206
|
+
}
|
|
207
|
+
const catLines = [...categories.entries()].map(([cat, ids]) => ` ${(cat + ":").padEnd(14)} ${ids.join(", ")}`);
|
|
208
|
+
result += `\n\nSTENCILS (${packId}):\n` + catLines.join("\n");
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (snapshotAvailable) {
|
|
212
|
+
result += `\n\nSNAPSHOT:
|
|
213
|
+
snapshot render diagram to PNG for visual review
|
|
214
|
+
snapshot width:800 custom width (default 1200)
|
|
215
|
+
snapshot page:2 specific page (1-based)`;
|
|
216
|
+
}
|
|
217
|
+
if (customThemes && customThemes.size > 0) {
|
|
218
|
+
const lines = [];
|
|
219
|
+
for (const [name, ct] of customThemes) {
|
|
220
|
+
lines.push(` ${name.padEnd(10)} ${ct.fill} / ${ct.stroke}${ct.fontColor ? ` font:${ct.fontColor}` : ""}`);
|
|
221
|
+
}
|
|
222
|
+
result += "\n\nCUSTOM THEMES:\n" + lines.join("\n");
|
|
223
|
+
}
|
|
224
|
+
if (customTypes.size > 0) {
|
|
225
|
+
const lines = [];
|
|
226
|
+
for (const [name, ct] of customTypes) {
|
|
227
|
+
const parts = [` ${name.padEnd(10)} based on ${ct.base}`];
|
|
228
|
+
if (ct.theme)
|
|
229
|
+
parts.push(ct.theme);
|
|
230
|
+
if (ct.badge)
|
|
231
|
+
parts.push(`badge:${ct.badge}`);
|
|
232
|
+
if (ct.defaultSize)
|
|
233
|
+
parts.push(`${ct.defaultSize.width}x${ct.defaultSize.height}`);
|
|
234
|
+
lines.push(parts.join(", "));
|
|
235
|
+
}
|
|
236
|
+
result += "\n\nCUSTOM TYPES:\n" + lines.join("\n");
|
|
237
|
+
}
|
|
238
|
+
return result;
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=model-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-map.js","sourceRoot":"","sources":["../../src/server/model-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SnapshotResult } from "../lib/drawio-cli.js";
|
|
2
|
+
import { DiagramModel } from "../model/diagram-model.js";
|
|
3
|
+
export interface QueryResult {
|
|
4
|
+
text: string;
|
|
5
|
+
image?: SnapshotResult;
|
|
6
|
+
}
|
|
7
|
+
export declare class QueryHandler {
|
|
8
|
+
private model;
|
|
9
|
+
private drawioCliPath;
|
|
10
|
+
constructor(model: DiagramModel, drawioCliPath?: string | null);
|
|
11
|
+
dispatch(query: string): string | QueryResult | Promise<QueryResult>;
|
|
12
|
+
private queryList;
|
|
13
|
+
private queryDescribe;
|
|
14
|
+
private queryConnections;
|
|
15
|
+
private queryFind;
|
|
16
|
+
private queryDiff;
|
|
17
|
+
private queryHistory;
|
|
18
|
+
private querySnapshot;
|
|
19
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { renderSnapshot } from "../lib/drawio-cli.js";
|
|
2
|
+
import { resolveRef } from "../parser/resolve-ref.js";
|
|
3
|
+
import { tokenize, isKeyValue, parseKeyValue } from "../parser/tokenizer.js";
|
|
4
|
+
import { formatList, formatConnections, formatDescribe, formatStats, formatStatus, formatHistory, formatMap, } from "./response-formatter.js";
|
|
5
|
+
import { serializeDiagram } from "../serialization/serialize.js";
|
|
6
|
+
export class QueryHandler {
|
|
7
|
+
model;
|
|
8
|
+
drawioCliPath;
|
|
9
|
+
constructor(model, drawioCliPath = null) {
|
|
10
|
+
this.model = model;
|
|
11
|
+
this.drawioCliPath = drawioCliPath;
|
|
12
|
+
}
|
|
13
|
+
dispatch(query) {
|
|
14
|
+
const tokens = tokenize(query);
|
|
15
|
+
if (tokens.length === 0)
|
|
16
|
+
return "Empty query";
|
|
17
|
+
const cmd = tokens[0].toLowerCase();
|
|
18
|
+
switch (cmd) {
|
|
19
|
+
case "list": return this.queryList(tokens.slice(1));
|
|
20
|
+
case "describe": return this.queryDescribe(tokens.slice(1));
|
|
21
|
+
case "connections": return this.queryConnections(tokens.slice(1));
|
|
22
|
+
case "stats": return formatStats(this.model);
|
|
23
|
+
case "status": return formatStatus(this.model);
|
|
24
|
+
case "map": return formatMap(this.model);
|
|
25
|
+
case "find": return this.queryFind(tokens.slice(1));
|
|
26
|
+
case "diff": return this.queryDiff(tokens.slice(1));
|
|
27
|
+
case "history": return this.queryHistory(tokens.slice(1));
|
|
28
|
+
case "snapshot": return this.querySnapshot(tokens.slice(1));
|
|
29
|
+
default: return `Unknown query command "${cmd}"`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
queryList(args) {
|
|
33
|
+
const page = this.model.getActivePage();
|
|
34
|
+
if (args.length > 0 && args[0].startsWith("@")) {
|
|
35
|
+
// Selector-based filter
|
|
36
|
+
const resolved = resolveRef(args[0], this.model.registry, this.model);
|
|
37
|
+
if (resolved.kind === "none")
|
|
38
|
+
return resolved.message;
|
|
39
|
+
const shapes = resolved.kind === "single" ? [resolved.shape] : resolved.shapes;
|
|
40
|
+
return formatList(shapes);
|
|
41
|
+
}
|
|
42
|
+
return formatList([...page.shapes.values()]);
|
|
43
|
+
}
|
|
44
|
+
queryDescribe(args) {
|
|
45
|
+
if (args.length === 0)
|
|
46
|
+
return "describe requires a reference";
|
|
47
|
+
const resolved = resolveRef(args[0], this.model.registry, this.model);
|
|
48
|
+
if (resolved.kind !== "single") {
|
|
49
|
+
return resolved.kind === "none" ? resolved.message : resolved.message;
|
|
50
|
+
}
|
|
51
|
+
return formatDescribe(resolved.shape, this.model);
|
|
52
|
+
}
|
|
53
|
+
queryConnections(args) {
|
|
54
|
+
if (args.length === 0)
|
|
55
|
+
return "connections requires a reference";
|
|
56
|
+
const resolved = resolveRef(args[0], this.model.registry, this.model);
|
|
57
|
+
if (resolved.kind !== "single") {
|
|
58
|
+
return resolved.kind === "none" ? resolved.message : resolved.message;
|
|
59
|
+
}
|
|
60
|
+
const page = this.model.getActivePage();
|
|
61
|
+
const { incoming, outgoing } = this.model.registry.getEdgesForShape(resolved.shape.id, page);
|
|
62
|
+
return formatConnections(resolved.shape, incoming, outgoing, this.model);
|
|
63
|
+
}
|
|
64
|
+
queryFind(args) {
|
|
65
|
+
if (args.length === 0)
|
|
66
|
+
return "find requires a search term";
|
|
67
|
+
const term = args.join(" ").toLowerCase();
|
|
68
|
+
const page = this.model.getActivePage();
|
|
69
|
+
const matches = [];
|
|
70
|
+
for (const shape of page.shapes.values()) {
|
|
71
|
+
if (shape.label.toLowerCase().includes(term)) {
|
|
72
|
+
matches.push(shape);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (matches.length === 0)
|
|
76
|
+
return `No shapes matching "${args.join(" ")}"`;
|
|
77
|
+
return formatList(matches);
|
|
78
|
+
}
|
|
79
|
+
queryDiff(args) {
|
|
80
|
+
if (args.length === 0)
|
|
81
|
+
return "diff requires checkpoint:NAME";
|
|
82
|
+
const param = args[0];
|
|
83
|
+
let cpName;
|
|
84
|
+
if (param.startsWith("checkpoint:")) {
|
|
85
|
+
cpName = param.slice(11);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
cpName = param;
|
|
89
|
+
}
|
|
90
|
+
const cpIndex = this.model.eventLog.getCheckpointIndex(cpName);
|
|
91
|
+
if (cpIndex === undefined) {
|
|
92
|
+
return `Unknown checkpoint "${cpName}"`;
|
|
93
|
+
}
|
|
94
|
+
const events = this.model.eventLog.eventsSince(cpIndex);
|
|
95
|
+
if (events.length === 0)
|
|
96
|
+
return `No changes since checkpoint "${cpName}"`;
|
|
97
|
+
return `${events.length} changes since "${cpName}":\n` + formatHistory(events);
|
|
98
|
+
}
|
|
99
|
+
queryHistory(args) {
|
|
100
|
+
const count = args.length > 0 ? parseInt(args[0], 10) : 10;
|
|
101
|
+
const events = this.model.getHistory(isNaN(count) ? 10 : count);
|
|
102
|
+
return formatHistory(events);
|
|
103
|
+
}
|
|
104
|
+
querySnapshot(args) {
|
|
105
|
+
// Parse arguments first so we know which page is being requested
|
|
106
|
+
let width = 1200;
|
|
107
|
+
let pageNum = 1;
|
|
108
|
+
for (const arg of args) {
|
|
109
|
+
if (isKeyValue(arg)) {
|
|
110
|
+
const { key, value } = parseKeyValue(arg);
|
|
111
|
+
if (key === "width")
|
|
112
|
+
width = parseInt(value, 10) || 1200;
|
|
113
|
+
if (key === "page")
|
|
114
|
+
pageNum = parseInt(value, 10) || 1;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Validate page number and get the requested page
|
|
118
|
+
const pages = this.model.diagram.pages;
|
|
119
|
+
if (pageNum < 1 || pageNum > pages.length) {
|
|
120
|
+
return `snapshot: invalid page ${pageNum} — diagram has ${pages.length} page(s)`;
|
|
121
|
+
}
|
|
122
|
+
const requestedPage = pages[pageNum - 1];
|
|
123
|
+
if (requestedPage.shapes.size === 0) {
|
|
124
|
+
return "snapshot: empty diagram — add shapes first";
|
|
125
|
+
}
|
|
126
|
+
if (!this.drawioCliPath) {
|
|
127
|
+
return "snapshot unavailable: draw.io desktop app not found. Install from https://drawio.com for visual review. Use 'map' query for text-based spatial summary.";
|
|
128
|
+
}
|
|
129
|
+
const xml = serializeDiagram(this.model.diagram);
|
|
130
|
+
return renderSnapshot({
|
|
131
|
+
cliPath: this.drawioCliPath,
|
|
132
|
+
diagramXml: xml,
|
|
133
|
+
width,
|
|
134
|
+
page: pageNum,
|
|
135
|
+
}).then((image) => {
|
|
136
|
+
const pageCount = pages.length;
|
|
137
|
+
const shapeCount = requestedPage.shapes.size;
|
|
138
|
+
const edgeCount = requestedPage.edges.size;
|
|
139
|
+
const groupCount = requestedPage.groups.size;
|
|
140
|
+
const sizeKB = Math.round(image.sizeBytes / 1024);
|
|
141
|
+
return {
|
|
142
|
+
text: `snapshot: ${image.width}px ${sizeKB}KB [${shapeCount}s ${edgeCount}e ${groupCount}g p:${pageNum}/${pageCount}]`,
|
|
143
|
+
image,
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=query-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-handler.js","sourceRoot":"","sources":["../../src/server/query-handler.ts"],"names":[],"mappings":"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"}
|