callman-core 1.28.1 → 1.29.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 (252) hide show
  1. package/dist/ai/index.d.ts +1 -1
  2. package/dist/ai/index.d.ts.map +1 -1
  3. package/dist/ai/index.js.map +1 -1
  4. package/dist/ai/outputSchemas.d.ts +3 -0
  5. package/dist/ai/outputSchemas.d.ts.map +1 -1
  6. package/dist/ai/outputSchemas.js +1 -0
  7. package/dist/ai/outputSchemas.js.map +1 -1
  8. package/dist/ai/parse/diagram.d.ts.map +1 -1
  9. package/dist/ai/parse/diagram.js +6 -3
  10. package/dist/ai/parse/diagram.js.map +1 -1
  11. package/dist/ai/prompts/diagram.d.ts +7 -3
  12. package/dist/ai/prompts/diagram.d.ts.map +1 -1
  13. package/dist/ai/prompts/diagram.js +44 -5
  14. package/dist/ai/prompts/diagram.js.map +1 -1
  15. package/dist/ai/types.d.ts +6 -0
  16. package/dist/ai/types.d.ts.map +1 -1
  17. package/dist/diagram/bpmn/derive.d.ts +74 -0
  18. package/dist/diagram/bpmn/derive.d.ts.map +1 -0
  19. package/dist/diagram/bpmn/derive.js +392 -0
  20. package/dist/diagram/bpmn/derive.js.map +1 -0
  21. package/dist/diagram/bpmn/index.d.ts +7 -0
  22. package/dist/diagram/bpmn/index.d.ts.map +1 -0
  23. package/dist/diagram/bpmn/index.js +12 -0
  24. package/dist/diagram/bpmn/index.js.map +1 -0
  25. package/dist/diagram/bpmn/patch.d.ts +14 -0
  26. package/dist/diagram/bpmn/patch.d.ts.map +1 -0
  27. package/dist/diagram/bpmn/patch.js +770 -0
  28. package/dist/diagram/bpmn/patch.js.map +1 -0
  29. package/dist/diagram/bpmn/place.d.ts +4 -0
  30. package/dist/diagram/bpmn/place.d.ts.map +1 -0
  31. package/dist/diagram/bpmn/place.js +65 -0
  32. package/dist/diagram/bpmn/place.js.map +1 -0
  33. package/dist/diagram/bpmn/serialize.d.ts +12 -0
  34. package/dist/diagram/bpmn/serialize.d.ts.map +1 -0
  35. package/dist/diagram/bpmn/serialize.js +292 -0
  36. package/dist/diagram/bpmn/serialize.js.map +1 -0
  37. package/dist/diagram/bpmn/types.d.ts +42 -0
  38. package/dist/diagram/bpmn/types.d.ts.map +1 -0
  39. package/dist/diagram/bpmn/types.js +84 -0
  40. package/dist/diagram/bpmn/types.js.map +1 -0
  41. package/dist/diagram/bpmn/xml.d.ts +60 -0
  42. package/dist/diagram/bpmn/xml.d.ts.map +1 -0
  43. package/dist/diagram/bpmn/xml.js +342 -0
  44. package/dist/diagram/bpmn/xml.js.map +1 -0
  45. package/dist/diagram/elkGraph.d.ts +1 -3
  46. package/dist/diagram/elkGraph.d.ts.map +1 -1
  47. package/dist/diagram/elkGraph.js +1 -0
  48. package/dist/diagram/elkGraph.js.map +1 -1
  49. package/dist/diagram/fixtures.d.ts +10 -0
  50. package/dist/diagram/fixtures.d.ts.map +1 -0
  51. package/dist/diagram/fixtures.js +113 -0
  52. package/dist/diagram/fixtures.js.map +1 -0
  53. package/dist/diagram/geometry.d.ts +27 -0
  54. package/dist/diagram/geometry.d.ts.map +1 -0
  55. package/dist/diagram/geometry.js +122 -0
  56. package/dist/diagram/geometry.js.map +1 -0
  57. package/dist/diagram/history.d.ts +36 -0
  58. package/dist/diagram/history.d.ts.map +1 -0
  59. package/dist/diagram/history.js +54 -0
  60. package/dist/diagram/history.js.map +1 -0
  61. package/dist/diagram/ids.d.ts +5 -0
  62. package/dist/diagram/ids.d.ts.map +1 -0
  63. package/dist/diagram/ids.js +52 -0
  64. package/dist/diagram/ids.js.map +1 -0
  65. package/dist/diagram/index.d.ts +14 -2
  66. package/dist/diagram/index.d.ts.map +1 -1
  67. package/dist/diagram/index.js +20 -8
  68. package/dist/diagram/index.js.map +1 -1
  69. package/dist/diagram/layout.d.ts +107 -0
  70. package/dist/diagram/layout.d.ts.map +1 -0
  71. package/dist/diagram/layout.js +356 -0
  72. package/dist/diagram/layout.js.map +1 -0
  73. package/dist/diagram/mermaid/derive.d.ts +55 -0
  74. package/dist/diagram/mermaid/derive.d.ts.map +1 -0
  75. package/dist/diagram/mermaid/derive.js +343 -0
  76. package/dist/diagram/mermaid/derive.js.map +1 -0
  77. package/dist/diagram/mermaid/index.d.ts +8 -0
  78. package/dist/diagram/mermaid/index.d.ts.map +1 -0
  79. package/dist/diagram/mermaid/index.js +24 -0
  80. package/dist/diagram/mermaid/index.js.map +1 -0
  81. package/dist/diagram/mermaid/parse.d.ts +96 -0
  82. package/dist/diagram/mermaid/parse.d.ts.map +1 -0
  83. package/dist/diagram/mermaid/parse.js +672 -0
  84. package/dist/diagram/mermaid/parse.js.map +1 -0
  85. package/dist/diagram/mermaid/patch.d.ts +16 -0
  86. package/dist/diagram/mermaid/patch.d.ts.map +1 -0
  87. package/dist/diagram/mermaid/patch.js +463 -0
  88. package/dist/diagram/mermaid/patch.js.map +1 -0
  89. package/dist/diagram/mermaid/serialize.d.ts +14 -0
  90. package/dist/diagram/mermaid/serialize.d.ts.map +1 -0
  91. package/dist/diagram/mermaid/serialize.js +125 -0
  92. package/dist/diagram/mermaid/serialize.js.map +1 -0
  93. package/dist/diagram/mermaid/shapes.d.ts +11 -0
  94. package/dist/diagram/mermaid/shapes.d.ts.map +1 -0
  95. package/dist/diagram/mermaid/shapes.js +320 -0
  96. package/dist/diagram/mermaid/shapes.js.map +1 -0
  97. package/dist/diagram/migrations.d.ts +1 -0
  98. package/dist/diagram/migrations.d.ts.map +1 -1
  99. package/dist/diagram/migrations.js +7 -2
  100. package/dist/diagram/migrations.js.map +1 -1
  101. package/dist/diagram/normalize.d.ts +9 -1
  102. package/dist/diagram/normalize.d.ts.map +1 -1
  103. package/dist/diagram/normalize.js +194 -0
  104. package/dist/diagram/normalize.js.map +1 -1
  105. package/dist/diagram/ops.d.ts +146 -0
  106. package/dist/diagram/ops.d.ts.map +1 -0
  107. package/dist/diagram/ops.js +823 -0
  108. package/dist/diagram/ops.js.map +1 -0
  109. package/dist/diagram/opsReference.d.ts +3 -0
  110. package/dist/diagram/opsReference.d.ts.map +1 -0
  111. package/dist/diagram/opsReference.js +51 -0
  112. package/dist/diagram/opsReference.js.map +1 -0
  113. package/dist/diagram/patchInput.d.ts +193 -0
  114. package/dist/diagram/patchInput.d.ts.map +1 -0
  115. package/dist/diagram/patchInput.js +621 -0
  116. package/dist/diagram/patchInput.js.map +1 -0
  117. package/dist/diagram/routing/batch.d.ts +45 -0
  118. package/dist/diagram/routing/batch.d.ts.map +1 -0
  119. package/dist/diagram/routing/batch.js +136 -0
  120. package/dist/diagram/routing/batch.js.map +1 -0
  121. package/dist/diagram/routing/curves.d.ts +7 -0
  122. package/dist/diagram/routing/curves.d.ts.map +1 -0
  123. package/dist/diagram/routing/curves.js +120 -0
  124. package/dist/diagram/routing/curves.js.map +1 -0
  125. package/dist/diagram/routing/grid.d.ts +15 -0
  126. package/dist/diagram/routing/grid.d.ts.map +1 -0
  127. package/dist/diagram/routing/grid.js +245 -0
  128. package/dist/diagram/routing/grid.js.map +1 -0
  129. package/dist/diagram/routing/index.d.ts +10 -0
  130. package/dist/diagram/routing/index.d.ts.map +1 -0
  131. package/dist/diagram/routing/index.js +10 -0
  132. package/dist/diagram/routing/index.js.map +1 -0
  133. package/dist/diagram/routing/legacy.d.ts +6 -0
  134. package/dist/diagram/routing/legacy.d.ts.map +1 -0
  135. package/dist/diagram/routing/legacy.js +27 -0
  136. package/dist/diagram/routing/legacy.js.map +1 -0
  137. package/dist/diagram/routing/nudge.d.ts +4 -0
  138. package/dist/diagram/routing/nudge.d.ts.map +1 -0
  139. package/dist/diagram/routing/nudge.js +96 -0
  140. package/dist/diagram/routing/nudge.js.map +1 -0
  141. package/dist/diagram/routing/orthogonal.d.ts +6 -0
  142. package/dist/diagram/routing/orthogonal.d.ts.map +1 -0
  143. package/dist/diagram/routing/orthogonal.js +56 -0
  144. package/dist/diagram/routing/orthogonal.js.map +1 -0
  145. package/dist/diagram/routing/path.d.ts +16 -0
  146. package/dist/diagram/routing/path.d.ts.map +1 -0
  147. package/dist/diagram/routing/path.js +128 -0
  148. package/dist/diagram/routing/path.js.map +1 -0
  149. package/dist/diagram/routing/sides.d.ts +22 -0
  150. package/dist/diagram/routing/sides.d.ts.map +1 -0
  151. package/dist/diagram/routing/sides.js +74 -0
  152. package/dist/diagram/routing/sides.js.map +1 -0
  153. package/dist/diagram/routing/types.d.ts +46 -0
  154. package/dist/diagram/routing/types.d.ts.map +1 -0
  155. package/dist/diagram/routing/types.js +11 -0
  156. package/dist/diagram/routing/types.js.map +1 -0
  157. package/dist/diagram/schema.d.ts +70 -37
  158. package/dist/diagram/schema.d.ts.map +1 -1
  159. package/dist/diagram/schema.js +62 -8
  160. package/dist/diagram/schema.js.map +1 -1
  161. package/dist/diagram/styleInput.d.ts +41 -0
  162. package/dist/diagram/styleInput.d.ts.map +1 -0
  163. package/dist/diagram/styleInput.js +105 -0
  164. package/dist/diagram/styleInput.js.map +1 -0
  165. package/dist/diagram/views.d.ts +9 -0
  166. package/dist/diagram/views.d.ts.map +1 -0
  167. package/dist/diagram/views.js +42 -0
  168. package/dist/diagram/views.js.map +1 -0
  169. package/dist-cjs/ai/index.js.map +1 -1
  170. package/dist-cjs/ai/outputSchemas.js +1 -0
  171. package/dist-cjs/ai/outputSchemas.js.map +1 -1
  172. package/dist-cjs/ai/parse/diagram.js +6 -3
  173. package/dist-cjs/ai/parse/diagram.js.map +1 -1
  174. package/dist-cjs/ai/prompts/diagram.js +44 -5
  175. package/dist-cjs/ai/prompts/diagram.js.map +1 -1
  176. package/dist-cjs/diagram/bpmn/derive.js +398 -0
  177. package/dist-cjs/diagram/bpmn/derive.js.map +1 -0
  178. package/dist-cjs/diagram/bpmn/index.js +31 -0
  179. package/dist-cjs/diagram/bpmn/index.js.map +1 -0
  180. package/dist-cjs/diagram/bpmn/patch.js +774 -0
  181. package/dist-cjs/diagram/bpmn/patch.js.map +1 -0
  182. package/dist-cjs/diagram/bpmn/place.js +69 -0
  183. package/dist-cjs/diagram/bpmn/place.js.map +1 -0
  184. package/dist-cjs/diagram/bpmn/serialize.js +299 -0
  185. package/dist-cjs/diagram/bpmn/serialize.js.map +1 -0
  186. package/dist-cjs/diagram/bpmn/types.js +99 -0
  187. package/dist-cjs/diagram/bpmn/types.js.map +1 -0
  188. package/dist-cjs/diagram/bpmn/xml.js +367 -0
  189. package/dist-cjs/diagram/bpmn/xml.js.map +1 -0
  190. package/dist-cjs/diagram/elkGraph.js +1 -0
  191. package/dist-cjs/diagram/elkGraph.js.map +1 -1
  192. package/dist-cjs/diagram/fixtures.js +117 -0
  193. package/dist-cjs/diagram/fixtures.js.map +1 -0
  194. package/dist-cjs/diagram/geometry.js +143 -0
  195. package/dist-cjs/diagram/geometry.js.map +1 -0
  196. package/dist-cjs/diagram/history.js +65 -0
  197. package/dist-cjs/diagram/history.js.map +1 -0
  198. package/dist-cjs/diagram/ids.js +58 -0
  199. package/dist-cjs/diagram/ids.js.map +1 -0
  200. package/dist-cjs/diagram/index.js +23 -8
  201. package/dist-cjs/diagram/index.js.map +1 -1
  202. package/dist-cjs/diagram/layout.js +364 -0
  203. package/dist-cjs/diagram/layout.js.map +1 -0
  204. package/dist-cjs/diagram/mermaid/derive.js +353 -0
  205. package/dist-cjs/diagram/mermaid/derive.js.map +1 -0
  206. package/dist-cjs/diagram/mermaid/index.js +44 -0
  207. package/dist-cjs/diagram/mermaid/index.js.map +1 -0
  208. package/dist-cjs/diagram/mermaid/parse.js +681 -0
  209. package/dist-cjs/diagram/mermaid/parse.js.map +1 -0
  210. package/dist-cjs/diagram/mermaid/patch.js +468 -0
  211. package/dist-cjs/diagram/mermaid/patch.js.map +1 -0
  212. package/dist-cjs/diagram/mermaid/serialize.js +133 -0
  213. package/dist-cjs/diagram/mermaid/serialize.js.map +1 -0
  214. package/dist-cjs/diagram/mermaid/shapes.js +327 -0
  215. package/dist-cjs/diagram/mermaid/shapes.js.map +1 -0
  216. package/dist-cjs/diagram/migrations.js +9 -3
  217. package/dist-cjs/diagram/migrations.js.map +1 -1
  218. package/dist-cjs/diagram/normalize.js +198 -1
  219. package/dist-cjs/diagram/normalize.js.map +1 -1
  220. package/dist-cjs/diagram/ops.js +829 -0
  221. package/dist-cjs/diagram/ops.js.map +1 -0
  222. package/dist-cjs/diagram/opsReference.js +55 -0
  223. package/dist-cjs/diagram/opsReference.js.map +1 -0
  224. package/dist-cjs/diagram/patchInput.js +636 -0
  225. package/dist-cjs/diagram/patchInput.js.map +1 -0
  226. package/dist-cjs/diagram/routing/batch.js +142 -0
  227. package/dist-cjs/diagram/routing/batch.js.map +1 -0
  228. package/dist-cjs/diagram/routing/curves.js +127 -0
  229. package/dist-cjs/diagram/routing/curves.js.map +1 -0
  230. package/dist-cjs/diagram/routing/grid.js +250 -0
  231. package/dist-cjs/diagram/routing/grid.js.map +1 -0
  232. package/dist-cjs/diagram/routing/index.js +29 -0
  233. package/dist-cjs/diagram/routing/index.js.map +1 -0
  234. package/dist-cjs/diagram/routing/legacy.js +32 -0
  235. package/dist-cjs/diagram/routing/legacy.js.map +1 -0
  236. package/dist-cjs/diagram/routing/nudge.js +100 -0
  237. package/dist-cjs/diagram/routing/nudge.js.map +1 -0
  238. package/dist-cjs/diagram/routing/orthogonal.js +62 -0
  239. package/dist-cjs/diagram/routing/orthogonal.js.map +1 -0
  240. package/dist-cjs/diagram/routing/path.js +137 -0
  241. package/dist-cjs/diagram/routing/path.js.map +1 -0
  242. package/dist-cjs/diagram/routing/sides.js +82 -0
  243. package/dist-cjs/diagram/routing/sides.js.map +1 -0
  244. package/dist-cjs/diagram/routing/types.js +15 -0
  245. package/dist-cjs/diagram/routing/types.js.map +1 -0
  246. package/dist-cjs/diagram/schema.js +64 -9
  247. package/dist-cjs/diagram/schema.js.map +1 -1
  248. package/dist-cjs/diagram/styleInput.js +113 -0
  249. package/dist-cjs/diagram/styleInput.js.map +1 -0
  250. package/dist-cjs/diagram/views.js +46 -0
  251. package/dist-cjs/diagram/views.js.map +1 -0
  252. package/package.json +1 -1
@@ -0,0 +1,398 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncOpsFromBpmn = exports.parseBpmn = exports.looksLikeBpmn = exports.BPMN_GRAMMAR_VERSION = exports.BIOC_NS = exports.DI_NS = exports.DC_NS = exports.BPMNDI_NS = exports.BPMN_NS = void 0;
4
+ // BPMN 2.0 XML → the diagram STRUCTURE (flow nodes, sequence/message flows,
5
+ // pools, lanes, subprocesses — with their DI positions) and the ops that
6
+ // bring an existing document in line with it. The XML is the truth: what it
7
+ // does not describe as a flow node (annotations, data objects, extension
8
+ // elements) stays in the text and out of the model.
9
+ const edgeSemantics_js_1 = require("../edgeSemantics.js");
10
+ const geometry_js_1 = require("../geometry.js");
11
+ const types_js_1 = require("./types.js");
12
+ const xml_js_1 = require("./xml.js");
13
+ exports.BPMN_NS = "http://www.omg.org/spec/BPMN/20100524/MODEL";
14
+ exports.BPMNDI_NS = "http://www.omg.org/spec/BPMN/20100524/DI";
15
+ exports.DC_NS = "http://www.omg.org/spec/DD/20100524/DC";
16
+ exports.DI_NS = "http://www.omg.org/spec/DD/20100524/DI";
17
+ exports.BIOC_NS = "http://bpmn.io/schema/bpmn/biocolor/1.0";
18
+ exports.BPMN_GRAMMAR_VERSION = "2.0";
19
+ const looksLikeBpmn = (text) => /<([A-Za-z0-9_]+:)?definitions[\s>]/.test(text);
20
+ exports.looksLikeBpmn = looksLikeBpmn;
21
+ const num = (value) => {
22
+ const parsed = Number(value);
23
+ return Number.isFinite(parsed) ? parsed : 0;
24
+ };
25
+ const rawColor = (value) => (value ? { raw: value } : undefined);
26
+ const parseBpmn = (text) => {
27
+ const xml = (0, xml_js_1.parseXml)(text);
28
+ const diagnostics = xml.errors.map((message) => ({ message, severity: "warning" }));
29
+ const empty = {
30
+ ok: false,
31
+ xml,
32
+ definitions: null,
33
+ collaboration: null,
34
+ processes: [],
35
+ plane: null,
36
+ elements: new Map(),
37
+ shapes: new Map(),
38
+ diEdges: new Map(),
39
+ structure: { nodes: [], edges: [], diagnostics, processIds: [] },
40
+ };
41
+ const root = xml.root;
42
+ if (!root || root.local !== "definitions") {
43
+ diagnostics.push({ message: "Not a BPMN 2.0 document: the root element must be <definitions>.", severity: "error" });
44
+ return empty;
45
+ }
46
+ const elements = new Map();
47
+ const collect = (element) => {
48
+ const id = (0, xml_js_1.attr)(element, "id");
49
+ if (id && !elements.has(id))
50
+ elements.set(id, element);
51
+ for (const child of (0, xml_js_1.childElements)(element))
52
+ collect(child);
53
+ };
54
+ collect(root);
55
+ // Diagram interchange: the first diagram's plane.
56
+ const diagram = (0, xml_js_1.childElements)(root).find((child) => child.local === "BPMNDiagram") ?? null;
57
+ const plane = diagram ? ((0, xml_js_1.childElements)(diagram).find((child) => child.local === "BPMNPlane") ?? null) : null;
58
+ const shapes = new Map();
59
+ const diEdges = new Map();
60
+ if (plane) {
61
+ for (const child of (0, xml_js_1.childElements)(plane)) {
62
+ const ref = (0, xml_js_1.attr)(child, "bpmnElement");
63
+ if (!ref)
64
+ continue;
65
+ if (child.local === "BPMNShape") {
66
+ const bounds = (0, xml_js_1.childElements)(child).find((entry) => entry.local === "Bounds");
67
+ if (!bounds)
68
+ continue;
69
+ const expanded = (0, xml_js_1.attr)(child, "isExpanded");
70
+ const horizontal = (0, xml_js_1.attr)(child, "isHorizontal");
71
+ shapes.set(ref, {
72
+ element: child,
73
+ bounds: { x: num((0, xml_js_1.attr)(bounds, "x")), y: num((0, xml_js_1.attr)(bounds, "y")), width: num((0, xml_js_1.attr)(bounds, "width")), height: num((0, xml_js_1.attr)(bounds, "height")) },
74
+ ...(expanded !== undefined ? { isExpanded: expanded === "true" } : {}),
75
+ ...(horizontal !== undefined ? { isHorizontal: horizontal === "true" } : {}),
76
+ });
77
+ }
78
+ else if (child.local === "BPMNEdge") {
79
+ const waypoints = (0, xml_js_1.childElements)(child)
80
+ .filter((entry) => entry.local === "waypoint")
81
+ .map((entry) => ({ x: num((0, xml_js_1.attr)(entry, "x")), y: num((0, xml_js_1.attr)(entry, "y")) }));
82
+ diEdges.set(ref, { element: child, waypoints });
83
+ }
84
+ }
85
+ }
86
+ else {
87
+ diagnostics.push({ message: "The document has no BPMNDiagram; shapes will be placed automatically.", severity: "warning" });
88
+ }
89
+ const styleFor = (id) => {
90
+ const shape = shapes.get(id)?.element ?? diEdges.get(id)?.element;
91
+ if (!shape)
92
+ return undefined;
93
+ const fill = rawColor((0, xml_js_1.attr)(shape, "bioc:fill") ?? (0, xml_js_1.attr)(shape, "color:background-color"));
94
+ const stroke = rawColor((0, xml_js_1.attr)(shape, "bioc:stroke") ?? (0, xml_js_1.attr)(shape, "color:border-color"));
95
+ if (!fill && !stroke)
96
+ return undefined;
97
+ return { ...(fill ? { fill } : {}), ...(stroke ? { stroke } : {}) };
98
+ };
99
+ const nodes = [];
100
+ const edges = [];
101
+ const nodeIds = new Set();
102
+ const pushNode = (node) => {
103
+ if (nodeIds.has(node.id))
104
+ return;
105
+ nodeIds.add(node.id);
106
+ const shape = shapes.get(node.id);
107
+ if (shape) {
108
+ node.position = { x: shape.bounds.x, y: shape.bounds.y };
109
+ node.size = { width: shape.bounds.width, height: shape.bounds.height };
110
+ }
111
+ const style = styleFor(node.id);
112
+ if (style)
113
+ node.style = style;
114
+ nodes.push(node);
115
+ };
116
+ // Collaboration: pools (participants) and message flows.
117
+ const collaboration = (0, xml_js_1.childElements)(root).find((child) => child.local === "collaboration") ?? null;
118
+ const poolByProcess = new Map();
119
+ const messageFlows = [];
120
+ if (collaboration) {
121
+ for (const child of (0, xml_js_1.childElements)(collaboration)) {
122
+ if (child.local === "participant") {
123
+ const id = (0, xml_js_1.attr)(child, "id");
124
+ if (!id)
125
+ continue;
126
+ const processRef = (0, xml_js_1.attr)(child, "processRef");
127
+ if (processRef)
128
+ poolByProcess.set(processRef, id);
129
+ const name = (0, xml_js_1.attr)(child, "name");
130
+ pushNode({ id, type: "bpmn.pool", ...(name ? { label: name } : {}), data: { element: "participant", ...(processRef ? { processRef } : {}) } });
131
+ }
132
+ else if (child.local === "messageFlow") {
133
+ messageFlows.push(child);
134
+ }
135
+ }
136
+ }
137
+ // Processes: lanes, flow nodes (recursing into expanded subprocesses) and flows.
138
+ const processes = (0, xml_js_1.childElements)(root).filter((child) => child.local === "process");
139
+ const sequenceFlows = [];
140
+ const defaultFlowIds = new Set();
141
+ for (const process of processes) {
142
+ const processId = (0, xml_js_1.attr)(process, "id") ?? "";
143
+ const poolId = poolByProcess.get(processId);
144
+ const laneOf = new Map();
145
+ const walkLanes = (laneSet, parentId) => {
146
+ for (const lane of (0, xml_js_1.childElements)(laneSet)) {
147
+ if (lane.local !== "lane")
148
+ continue;
149
+ const laneId = (0, xml_js_1.attr)(lane, "id");
150
+ if (!laneId)
151
+ continue;
152
+ const name = (0, xml_js_1.attr)(lane, "name");
153
+ pushNode({ id: laneId, type: "bpmn.lane", ...(name ? { label: name } : {}), ...(parentId ? { parentId } : {}), data: { element: "lane" } });
154
+ for (const child of (0, xml_js_1.childElements)(lane)) {
155
+ if (child.local === "flowNodeRef")
156
+ laneOf.set((0, xml_js_1.textContent)(child).trim(), laneId);
157
+ else if (child.local === "childLaneSet")
158
+ walkLanes(child, laneId);
159
+ }
160
+ }
161
+ };
162
+ for (const child of (0, xml_js_1.childElements)(process))
163
+ if (child.local === "laneSet")
164
+ walkLanes(child, poolId);
165
+ const walkFlow = (container, containerId, lanesApply) => {
166
+ for (const child of (0, xml_js_1.childElements)(container)) {
167
+ if (child.local === "sequenceFlow") {
168
+ const id = (0, xml_js_1.attr)(child, "id");
169
+ if (id)
170
+ sequenceFlows.push({ element: child, id });
171
+ continue;
172
+ }
173
+ if (!types_js_1.BPMN_FLOW_NODE_ELEMENTS.has(child.local))
174
+ continue;
175
+ const id = (0, xml_js_1.attr)(child, "id");
176
+ if (!id)
177
+ continue;
178
+ const meta = (0, types_js_1.bpmnTypeForElement)(child.local);
179
+ if (!meta)
180
+ continue;
181
+ const defaultFlow = (0, xml_js_1.attr)(child, "default");
182
+ if (defaultFlow)
183
+ defaultFlowIds.add(defaultFlow);
184
+ const data = { element: child.local };
185
+ for (const inner of (0, xml_js_1.childElements)(child)) {
186
+ const definition = (0, types_js_1.eventDefinitionFromElement)(inner.local);
187
+ if (definition) {
188
+ data.eventDefinition = definition;
189
+ break;
190
+ }
191
+ }
192
+ if (child.local === "boundaryEvent") {
193
+ const attachedTo = (0, xml_js_1.attr)(child, "attachedToRef");
194
+ if (attachedTo)
195
+ data.attachedTo = attachedTo;
196
+ if ((0, xml_js_1.attr)(child, "cancelActivity") === "false")
197
+ data.cancelActivity = false;
198
+ }
199
+ let collapsed;
200
+ if (child.local === "subProcess") {
201
+ if ((0, xml_js_1.attr)(child, "triggeredByEvent") === "true")
202
+ data.triggeredByEvent = true;
203
+ const expanded = shapes.get(id)?.isExpanded === true;
204
+ data.isExpanded = expanded;
205
+ collapsed = !expanded;
206
+ }
207
+ const name = (0, xml_js_1.attr)(child, "name");
208
+ const parentId = (lanesApply ? laneOf.get(id) : undefined) ?? containerId;
209
+ pushNode({ id, type: meta.type, ...(name ? { label: name } : {}), ...(parentId ? { parentId } : {}), ...(collapsed ? { collapsed: true } : {}), data });
210
+ if (child.local === "subProcess" && !collapsed)
211
+ walkFlow(child, id, false);
212
+ }
213
+ };
214
+ walkFlow(process, poolId, true);
215
+ }
216
+ const flowEdge = (element, id, flow) => {
217
+ const source = (0, xml_js_1.attr)(element, "sourceRef");
218
+ const target = (0, xml_js_1.attr)(element, "targetRef");
219
+ if (!source || !target || !nodeIds.has(source) || !nodeIds.has(target)) {
220
+ diagnostics.push({ message: `Flow "${id}" connects elements the diagram does not model; it is kept in the XML only.`, severity: "warning", elementId: id });
221
+ return;
222
+ }
223
+ const name = (0, xml_js_1.attr)(element, "name");
224
+ const condition = (0, xml_js_1.childElements)(element).find((child) => child.local === "conditionExpression");
225
+ const data = { flow };
226
+ if (condition)
227
+ data.conditionExpression = (0, xml_js_1.textContent)(condition).trim();
228
+ if (defaultFlowIds.has(id))
229
+ data.isDefault = true;
230
+ const waypoints = diEdges.get(id)?.waypoints;
231
+ const style = flow === "message" ? (0, edgeSemantics_js_1.semanticStyle)("async") : undefined;
232
+ const colored = styleFor(id);
233
+ edges.push({
234
+ id,
235
+ source,
236
+ target,
237
+ ...(name ? { label: name } : {}),
238
+ ...(waypoints && waypoints.length >= 2 ? { waypoints } : {}),
239
+ data,
240
+ ...(style || colored ? { style: { ...(style ?? {}), ...(colored ?? {}) } } : {}),
241
+ });
242
+ };
243
+ for (const flow of sequenceFlows)
244
+ flowEdge(flow.element, flow.id, "sequence");
245
+ for (const flow of messageFlows) {
246
+ const id = (0, xml_js_1.attr)(flow, "id");
247
+ if (id)
248
+ flowEdge(flow, id, "message");
249
+ }
250
+ return {
251
+ ok: true,
252
+ xml,
253
+ definitions: root,
254
+ collaboration,
255
+ processes,
256
+ plane,
257
+ elements,
258
+ shapes,
259
+ diEdges,
260
+ structure: {
261
+ nodes,
262
+ edges,
263
+ diagnostics,
264
+ processIds: processes.map((process) => (0, xml_js_1.attr)(process, "id") ?? "").filter(Boolean),
265
+ ...(collaboration && (0, xml_js_1.attr)(collaboration, "id") ? { collaborationId: (0, xml_js_1.attr)(collaboration, "id") } : {}),
266
+ },
267
+ };
268
+ };
269
+ exports.parseBpmn = parseBpmn;
270
+ const samePoint = (a, b) => a === b || (a !== undefined && b !== undefined && Math.abs(a.x - b.x) < 0.5 && Math.abs(a.y - b.y) < 0.5);
271
+ const samePoints = (a, b) => (a === undefined && b === undefined) || (a !== undefined && b !== undefined && a.length === b.length && a.every((point, index) => samePoint(point, b[index])));
272
+ const sameJson = (a, b) => JSON.stringify(a ?? null) === JSON.stringify(b ?? null);
273
+ const syncOpsFromBpmn = (doc, structure) => {
274
+ const ops = [];
275
+ const addedNodeIds = [];
276
+ const removedNodeIds = [];
277
+ const unpositionedNodeIds = [];
278
+ const existingNodes = new Map(doc.nodes.map((node) => [node.id, node]));
279
+ const existingEdges = new Map(doc.edges.map((edge) => [edge.id, edge]));
280
+ const existingRects = (0, geometry_js_1.absoluteRects)(doc);
281
+ const wantedNodes = new Map(structure.nodes.map((node) => [node.id, node]));
282
+ const wantedEdges = new Map(structure.edges.map((edge) => [edge.id, edge]));
283
+ for (const edge of doc.edges) {
284
+ if (!wantedEdges.has(edge.id) && edge.source && edge.target && existingNodes.has(edge.source) && existingNodes.has(edge.target)) {
285
+ if (wantedNodes.has(edge.source) && wantedNodes.has(edge.target))
286
+ ops.push({ op: "removeEdge", id: edge.id });
287
+ }
288
+ }
289
+ for (const node of doc.nodes) {
290
+ if (!wantedNodes.has(node.id)) {
291
+ ops.push({ op: "removeNode", id: node.id, children: "lift" });
292
+ removedNodeIds.push(node.id);
293
+ }
294
+ }
295
+ const ordered = [];
296
+ const placed = new Set();
297
+ const place = (node, depth) => {
298
+ if (placed.has(node.id) || depth > structure.nodes.length)
299
+ return;
300
+ if (node.parentId && wantedNodes.has(node.parentId) && !placed.has(node.parentId))
301
+ place(wantedNodes.get(node.parentId), depth + 1);
302
+ placed.add(node.id);
303
+ ordered.push(node);
304
+ };
305
+ for (const node of structure.nodes)
306
+ place(node, 0);
307
+ // Absolute position of a node as it will be after this sync.
308
+ const absoluteOf = (id) => {
309
+ if (!id)
310
+ return { x: 0, y: 0 };
311
+ const wanted = wantedNodes.get(id);
312
+ if (wanted?.position)
313
+ return wanted.position;
314
+ const rect = existingRects.get(id);
315
+ return rect ? { x: rect.x, y: rect.y } : { x: 0, y: 0 };
316
+ };
317
+ for (const wanted of ordered) {
318
+ const existing = existingNodes.get(wanted.id);
319
+ const parentAbs = absoluteOf(wanted.parentId);
320
+ const relative = wanted.position ? { x: wanted.position.x - parentAbs.x, y: wanted.position.y - parentAbs.y } : undefined;
321
+ const size = wanted.size ?? (0, types_js_1.getBpmnType)(wanted.type)?.size ?? { width: 100, height: 80 };
322
+ if (!existing) {
323
+ const node = {
324
+ id: wanted.id,
325
+ type: wanted.type,
326
+ position: relative ?? { x: 0, y: 0 },
327
+ size,
328
+ ...(wanted.label !== undefined ? { label: wanted.label } : {}),
329
+ ...(wanted.parentId ? { parentId: wanted.parentId } : {}),
330
+ ...(wanted.collapsed ? { collapsed: true } : {}),
331
+ ...(wanted.style ? { style: wanted.style } : {}),
332
+ data: { bpmn: wanted.data },
333
+ };
334
+ ops.push({ op: "addNode", node });
335
+ addedNodeIds.push(wanted.id);
336
+ if (!relative)
337
+ unpositionedNodeIds.push(wanted.id);
338
+ continue;
339
+ }
340
+ const changes = {};
341
+ if (wanted.type !== existing.type)
342
+ changes.type = wanted.type;
343
+ if ((wanted.label ?? null) !== (existing.label ?? null))
344
+ changes.label = wanted.label ?? null;
345
+ if (Boolean(wanted.collapsed) !== Boolean(existing.collapsed))
346
+ changes.collapsed = Boolean(wanted.collapsed);
347
+ if (!sameJson(existing.data?.bpmn, wanted.data))
348
+ changes.data = { bpmn: wanted.data };
349
+ const wantedFill = wanted.style?.fill ?? null;
350
+ const wantedStroke = wanted.style?.stroke ?? null;
351
+ if (!sameJson(existing.style?.fill ?? null, wantedFill) || !sameJson(existing.style?.stroke ?? null, wantedStroke)) {
352
+ changes.style = { fill: wantedFill, stroke: wantedStroke };
353
+ }
354
+ if (Object.keys(changes).length > 0)
355
+ ops.push({ op: "updateNode", id: wanted.id, changes });
356
+ if ((wanted.parentId ?? null) !== (existing.parentId ?? null)) {
357
+ ops.push({ op: "reparent", id: wanted.id, parentId: wanted.parentId ?? null, position: relative ?? existing.position });
358
+ }
359
+ else if (relative && !samePoint(relative, existing.position)) {
360
+ ops.push({ op: "moveNodes", moves: [{ id: wanted.id, position: relative }] });
361
+ }
362
+ if (wanted.size && (Math.abs(wanted.size.width - existing.size.width) >= 0.5 || Math.abs(wanted.size.height - existing.size.height) >= 0.5)) {
363
+ ops.push({ op: "resizeNode", id: wanted.id, size: wanted.size });
364
+ }
365
+ }
366
+ for (const wanted of structure.edges) {
367
+ const existing = existingEdges.get(wanted.id);
368
+ if (!existing) {
369
+ const edge = {
370
+ id: wanted.id,
371
+ source: wanted.source,
372
+ target: wanted.target,
373
+ ...(wanted.label ? { label: wanted.label } : {}),
374
+ ...(wanted.waypoints ? { waypoints: wanted.waypoints } : {}),
375
+ ...(wanted.style ? { style: wanted.style } : {}),
376
+ data: { bpmn: wanted.data },
377
+ };
378
+ ops.push({ op: "addEdge", edge });
379
+ continue;
380
+ }
381
+ const changes = {};
382
+ if (existing.source !== wanted.source)
383
+ changes.source = wanted.source;
384
+ if (existing.target !== wanted.target)
385
+ changes.target = wanted.target;
386
+ if ((wanted.label ?? null) !== (existing.label ?? null))
387
+ changes.label = wanted.label ?? null;
388
+ if (wanted.waypoints && !samePoints(wanted.waypoints, existing.waypoints))
389
+ changes.waypoints = wanted.waypoints;
390
+ if (!sameJson(existing.data?.bpmn, wanted.data))
391
+ changes.data = { bpmn: wanted.data };
392
+ if (Object.keys(changes).length > 0)
393
+ ops.push({ op: "updateEdge", id: wanted.id, changes });
394
+ }
395
+ return { ops, addedNodeIds, removedNodeIds, unpositionedNodeIds };
396
+ };
397
+ exports.syncOpsFromBpmn = syncOpsFromBpmn;
398
+ //# sourceMappingURL=derive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../../src/diagram/bpmn/derive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.parseBpmnXml = exports.patchBpmnSource = void 0;
18
+ // BPMN 2.0 as a diagram SOURCE format: the XML is the truth of a BPMN
19
+ // diagram; the model (bpmn.* nodes, sequence/message flow edges) is derived
20
+ // from it, and every model op lands on the XML as a minimal edit. The
21
+ // desktop edits the XML with bpmn-js; the AI and MCP never see XML — they
22
+ // use the same ops as for every other diagram.
23
+ __exportStar(require("./types.js"), exports);
24
+ __exportStar(require("./derive.js"), exports);
25
+ __exportStar(require("./serialize.js"), exports);
26
+ __exportStar(require("./place.js"), exports);
27
+ var patch_js_1 = require("./patch.js");
28
+ Object.defineProperty(exports, "patchBpmnSource", { enumerable: true, get: function () { return patch_js_1.patchBpmnSource; } });
29
+ var xml_js_1 = require("./xml.js");
30
+ Object.defineProperty(exports, "parseBpmnXml", { enumerable: true, get: function () { return xml_js_1.parseXml; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/diagram/bpmn/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sEAAsE;AACtE,4EAA4E;AAC5E,sEAAsE;AACtE,0EAA0E;AAC1E,+CAA+C;AAC/C,6CAA2B;AAC3B,8CAA4B;AAC5B,iDAA+B;AAC/B,6CAA2B;AAC3B,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,mCAAuF;AAA9E,sGAAA,QAAQ,OAAgB"}