archdraw-mcp-server 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 (109) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +757 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/lib/__tests__/constants.test.d.ts +2 -0
  6. package/dist/lib/__tests__/constants.test.d.ts.map +1 -0
  7. package/dist/lib/__tests__/constants.test.js +47 -0
  8. package/dist/lib/__tests__/constants.test.js.map +1 -0
  9. package/dist/lib/__tests__/diagram-state.test.d.ts +2 -0
  10. package/dist/lib/__tests__/diagram-state.test.d.ts.map +1 -0
  11. package/dist/lib/__tests__/diagram-state.test.js +75 -0
  12. package/dist/lib/__tests__/diagram-state.test.js.map +1 -0
  13. package/dist/lib/__tests__/elk-runner.test.d.ts +2 -0
  14. package/dist/lib/__tests__/elk-runner.test.d.ts.map +1 -0
  15. package/dist/lib/__tests__/elk-runner.test.js +87 -0
  16. package/dist/lib/__tests__/elk-runner.test.js.map +1 -0
  17. package/dist/lib/checkpoints.d.ts +48 -0
  18. package/dist/lib/checkpoints.d.ts.map +1 -0
  19. package/dist/lib/checkpoints.js +58 -0
  20. package/dist/lib/checkpoints.js.map +1 -0
  21. package/dist/lib/constants.d.ts +29 -0
  22. package/dist/lib/constants.d.ts.map +1 -0
  23. package/dist/lib/constants.js +62 -0
  24. package/dist/lib/constants.js.map +1 -0
  25. package/dist/lib/diagram-state.d.ts +18 -0
  26. package/dist/lib/diagram-state.d.ts.map +1 -0
  27. package/dist/lib/diagram-state.js +55 -0
  28. package/dist/lib/diagram-state.js.map +1 -0
  29. package/dist/lib/elk-runner.d.ts +29 -0
  30. package/dist/lib/elk-runner.d.ts.map +1 -0
  31. package/dist/lib/elk-runner.js +532 -0
  32. package/dist/lib/elk-runner.js.map +1 -0
  33. package/dist/lib/http.d.ts +3 -0
  34. package/dist/lib/http.d.ts.map +1 -0
  35. package/dist/lib/http.js +13 -0
  36. package/dist/lib/http.js.map +1 -0
  37. package/dist/lib/node-catalog.d.ts +10 -0
  38. package/dist/lib/node-catalog.d.ts.map +1 -0
  39. package/dist/lib/node-catalog.js +122 -0
  40. package/dist/lib/node-catalog.js.map +1 -0
  41. package/dist/lib/parse-prompt.d.ts +26 -0
  42. package/dist/lib/parse-prompt.d.ts.map +1 -0
  43. package/dist/lib/parse-prompt.js +289 -0
  44. package/dist/lib/parse-prompt.js.map +1 -0
  45. package/dist/lib/prompt-builder.d.ts +14 -0
  46. package/dist/lib/prompt-builder.d.ts.map +1 -0
  47. package/dist/lib/prompt-builder.js +133 -0
  48. package/dist/lib/prompt-builder.js.map +1 -0
  49. package/dist/lib/schema.d.ts +1231 -0
  50. package/dist/lib/schema.d.ts.map +1 -0
  51. package/dist/lib/schema.js +258 -0
  52. package/dist/lib/schema.js.map +1 -0
  53. package/dist/server.d.ts +36 -0
  54. package/dist/server.d.ts.map +1 -0
  55. package/dist/server.js +287 -0
  56. package/dist/server.js.map +1 -0
  57. package/dist/tools/__tests__/export-diagram.test.d.ts +2 -0
  58. package/dist/tools/__tests__/export-diagram.test.d.ts.map +1 -0
  59. package/dist/tools/__tests__/export-diagram.test.js +40 -0
  60. package/dist/tools/__tests__/export-diagram.test.js.map +1 -0
  61. package/dist/tools/__tests__/update-diagram.test.d.ts +2 -0
  62. package/dist/tools/__tests__/update-diagram.test.d.ts.map +1 -0
  63. package/dist/tools/__tests__/update-diagram.test.js +90 -0
  64. package/dist/tools/__tests__/update-diagram.test.js.map +1 -0
  65. package/dist/tools/apply-template.d.ts +28 -0
  66. package/dist/tools/apply-template.d.ts.map +1 -0
  67. package/dist/tools/apply-template.js +388 -0
  68. package/dist/tools/apply-template.js.map +1 -0
  69. package/dist/tools/export-diagram.d.ts +36 -0
  70. package/dist/tools/export-diagram.d.ts.map +1 -0
  71. package/dist/tools/export-diagram.js +65 -0
  72. package/dist/tools/export-diagram.js.map +1 -0
  73. package/dist/tools/fix-layout.d.ts +19 -0
  74. package/dist/tools/fix-layout.d.ts.map +1 -0
  75. package/dist/tools/fix-layout.js +100 -0
  76. package/dist/tools/fix-layout.js.map +1 -0
  77. package/dist/tools/generate-diagram.d.ts +31 -0
  78. package/dist/tools/generate-diagram.d.ts.map +1 -0
  79. package/dist/tools/generate-diagram.js +385 -0
  80. package/dist/tools/generate-diagram.js.map +1 -0
  81. package/dist/tools/list-nodes.d.ts +18 -0
  82. package/dist/tools/list-nodes.d.ts.map +1 -0
  83. package/dist/tools/list-nodes.js +48 -0
  84. package/dist/tools/list-nodes.js.map +1 -0
  85. package/dist/tools/load-checkpoint.d.ts +18 -0
  86. package/dist/tools/load-checkpoint.d.ts.map +1 -0
  87. package/dist/tools/load-checkpoint.js +24 -0
  88. package/dist/tools/load-checkpoint.js.map +1 -0
  89. package/dist/tools/read-me.d.ts +2 -0
  90. package/dist/tools/read-me.d.ts.map +1 -0
  91. package/dist/tools/read-me.js +326 -0
  92. package/dist/tools/read-me.js.map +1 -0
  93. package/dist/tools/save-checkpoint.d.ts +11 -0
  94. package/dist/tools/save-checkpoint.d.ts.map +1 -0
  95. package/dist/tools/save-checkpoint.js +17 -0
  96. package/dist/tools/save-checkpoint.js.map +1 -0
  97. package/dist/tools/update-diagram.d.ts +20 -0
  98. package/dist/tools/update-diagram.d.ts.map +1 -0
  99. package/dist/tools/update-diagram.js +189 -0
  100. package/dist/tools/update-diagram.js.map +1 -0
  101. package/dist/tools/validate-diagram.d.ts +14 -0
  102. package/dist/tools/validate-diagram.d.ts.map +1 -0
  103. package/dist/tools/validate-diagram.js +181 -0
  104. package/dist/tools/validate-diagram.js.map +1 -0
  105. package/dist/types/index.d.ts +218 -0
  106. package/dist/types/index.d.ts.map +1 -0
  107. package/dist/types/index.js +2 -0
  108. package/dist/types/index.js.map +1 -0
  109. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constants.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/constants.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { TIER_ORDER, TIER_RANK, TIER_COLORS, COMM_COLORS, DEFAULT_NODE_WIDTH, isTier, } from '../constants.js';
3
+ describe('TIER_ORDER', () => {
4
+ it('places client first and external after data', () => {
5
+ expect(TIER_ORDER[0]).toBe('client');
6
+ expect(TIER_ORDER.indexOf('data')).toBeGreaterThan(TIER_ORDER.indexOf('compute'));
7
+ expect(TIER_ORDER.indexOf('external')).toBeGreaterThan(TIER_ORDER.indexOf('data'));
8
+ });
9
+ });
10
+ describe('TIER_RANK', () => {
11
+ it('assigns monotonic ranks matching left-to-right flow', () => {
12
+ expect(TIER_RANK.client).toBe(0);
13
+ expect(TIER_RANK.edge).toBe(1);
14
+ expect(TIER_RANK.compute).toBe(2);
15
+ expect(TIER_RANK.async).toBe(3);
16
+ expect(TIER_RANK.data).toBe(4);
17
+ expect(TIER_RANK.external).toBe(5);
18
+ });
19
+ });
20
+ describe('TIER_COLORS', () => {
21
+ it('provides a color for every tier', () => {
22
+ for (const tier of TIER_ORDER) {
23
+ expect(TIER_COLORS[tier]).toMatch(/^#[0-9a-f]{6}$/i);
24
+ }
25
+ });
26
+ });
27
+ describe('COMM_COLORS', () => {
28
+ it('animates async/stream/event but not sync/dep', () => {
29
+ expect(COMM_COLORS.async.animated).toBe(true);
30
+ expect(COMM_COLORS.stream.animated).toBe(true);
31
+ expect(COMM_COLORS.event.animated).toBe(true);
32
+ expect(COMM_COLORS.sync.animated).toBe(false);
33
+ expect(COMM_COLORS.dep.animated).toBe(false);
34
+ });
35
+ it('keeps the default node size constants', () => {
36
+ expect(DEFAULT_NODE_WIDTH).toBe(200);
37
+ });
38
+ });
39
+ describe('isTier', () => {
40
+ it('validates known tiers and rejects junk', () => {
41
+ expect(isTier('compute')).toBe(true);
42
+ expect(isTier('COMPUTE')).toBe(true);
43
+ expect(isTier('bogus')).toBe(false);
44
+ expect(isTier(undefined)).toBe(false);
45
+ });
46
+ });
47
+ //# sourceMappingURL=constants.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/constants.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=diagram-state.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-state.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/diagram-state.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ import { beforeEach, describe, it, expect, vi } from 'vitest';
2
+ function makeNode(id, overrides = {}) {
3
+ return {
4
+ id,
5
+ type: 'systemNode',
6
+ position: { x: 0, y: 0 },
7
+ data: { label: id, icon: 'box', layer: 'compute', tier: 'compute', tierColor: '#0d9488' },
8
+ width: 200,
9
+ height: 70,
10
+ ...overrides,
11
+ };
12
+ }
13
+ function makeEdge(id, source, target) {
14
+ return {
15
+ id,
16
+ source,
17
+ target,
18
+ type: 'simpleFloating',
19
+ animated: false,
20
+ label: '',
21
+ labelShowBg: true,
22
+ labelBgPadding: [8, 4],
23
+ labelBgBorderRadius: 4,
24
+ labelBgStyle: { fill: '#1e1e2e' },
25
+ labelStyle: { fontSize: 10, fontWeight: 600, fill: '#e2e8f0' },
26
+ style: { stroke: '#94a3b8', strokeWidth: 2, strokeDasharray: '' },
27
+ markerEnd: { type: 'arrowclosed', color: '#94a3b8' },
28
+ data: { communicationType: 'sync', pathType: 'smooth', label: '' },
29
+ };
30
+ }
31
+ describe('diagram-state', () => {
32
+ beforeEach(() => {
33
+ vi.resetModules();
34
+ });
35
+ it('returns empty state before anything is set', async () => {
36
+ const { getDiagramState } = await import('../diagram-state.js');
37
+ const state = getDiagramState();
38
+ expect(state.nodes).toEqual([]);
39
+ expect(state.edges).toEqual([]);
40
+ expect(state.sessionId).toBeUndefined();
41
+ });
42
+ it('stores and returns nodes/edges and sessionId', async () => {
43
+ const { setDiagramState, getDiagramState } = await import('../diagram-state.js');
44
+ const nodes = [makeNode('a'), makeNode('b')];
45
+ const edges = [makeEdge('e1', 'a', 'b')];
46
+ setDiagramState({ nodes, edges, sessionId: 'sess-123' });
47
+ const state = getDiagramState();
48
+ expect(state.nodes).toHaveLength(2);
49
+ expect(state.edges).toHaveLength(1);
50
+ expect(state.sessionId).toBe('sess-123');
51
+ // returned copies must not mutate the store
52
+ state.nodes.push(makeNode('c'));
53
+ expect(getDiagramState().nodes).toHaveLength(2);
54
+ });
55
+ it('sets sessionId independently without losing nodes', async () => {
56
+ const { setDiagramState, setDiagramSessionId, getDiagramState } = await import('../diagram-state.js');
57
+ setDiagramState({ nodes: [makeNode('a')], edges: [] });
58
+ setDiagramSessionId('sess-456');
59
+ expect(getDiagramState().sessionId).toBe('sess-456');
60
+ expect(getDiagramState().nodes).toHaveLength(1);
61
+ });
62
+ it('ignores falsy session ids', async () => {
63
+ const { setDiagramState, setDiagramSessionId, getDiagramState } = await import('../diagram-state.js');
64
+ setDiagramState({ nodes: [makeNode('a')], edges: [] });
65
+ setDiagramSessionId(undefined);
66
+ expect(getDiagramState().sessionId).toBeUndefined();
67
+ });
68
+ it('hasDiagramState reflects whether state was set', async () => {
69
+ const { setDiagramState, hasDiagramState } = await import('../diagram-state.js');
70
+ expect(hasDiagramState()).toBe(false);
71
+ setDiagramState({ nodes: [makeNode('a')], edges: [] });
72
+ expect(hasDiagramState()).toBe(true);
73
+ });
74
+ });
75
+ //# sourceMappingURL=diagram-state.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-state.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/diagram-state.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=elk-runner.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elk-runner.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/elk-runner.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { generateELKOptions, runFallbackLayout } from '../elk-runner.js';
3
+ function makeNode(id, overrides = {}) {
4
+ return {
5
+ id,
6
+ type: 'systemNode',
7
+ label: id,
8
+ layer: 'compute',
9
+ width: 200,
10
+ height: 70,
11
+ icon: 'box',
12
+ metadata: {},
13
+ ...overrides,
14
+ };
15
+ }
16
+ function makeEdge(id, source, target) {
17
+ return {
18
+ id,
19
+ source,
20
+ target,
21
+ communicationType: 'sync',
22
+ pathType: 'smooth',
23
+ label: '',
24
+ labelPosition: 'center',
25
+ animated: false,
26
+ style: { stroke: '#94a3b8', strokeDasharray: '', strokeWidth: 2 },
27
+ markerEnd: 'arrowclosed',
28
+ markerStart: 'none',
29
+ };
30
+ }
31
+ describe('generateELKOptions', () => {
32
+ it('honors the requested direction', () => {
33
+ expect(generateELKOptions('DOWN')['elk.direction']).toBe('DOWN');
34
+ expect(generateELKOptions('UP')['elk.direction']).toBe('UP');
35
+ expect(generateELKOptions('LEFT')['elk.direction']).toBe('LEFT');
36
+ expect(generateELKOptions('RIGHT')['elk.direction']).toBe('RIGHT');
37
+ });
38
+ it('defaults to RIGHT', () => {
39
+ expect(generateELKOptions()['elk.direction']).toBe('RIGHT');
40
+ });
41
+ it('scales spacing by density', () => {
42
+ const low = generateELKOptions('RIGHT', 'low');
43
+ const high = generateELKOptions('RIGHT', 'high');
44
+ expect(Number(high['elk.spacing.nodeNode'])).toBeGreaterThan(Number(low['elk.spacing.nodeNode']));
45
+ });
46
+ });
47
+ describe('runFallbackLayout', () => {
48
+ it('emits parentNode at the top level for grouped children', () => {
49
+ const group = makeNode('backend_group', {
50
+ isGroup: true,
51
+ layer: 'compute',
52
+ width: 500,
53
+ height: 280,
54
+ });
55
+ const child = makeNode('order_svc', {
56
+ parentId: 'backend_group',
57
+ layer: 'compute',
58
+ });
59
+ const edge = makeEdge('e1', 'client', 'order_svc');
60
+ const result = runFallbackLayout([group, child, makeNode('client', { layer: 'client' })], [edge]);
61
+ const outputChild = result.nodes.find(n => n.id === 'order_svc');
62
+ expect(outputChild).toBeDefined();
63
+ expect(outputChild?.parentNode).toBe('backend_group');
64
+ expect(outputChild?.data.parentId).toBe('backend_group');
65
+ const outputGroup = result.nodes.find(n => n.id === 'backend_group');
66
+ expect(outputGroup?.type).toBe('groupNode');
67
+ expect(outputGroup?.data.isGroup).toBe(true);
68
+ });
69
+ it('produces positioned, non-overlapping nodes', () => {
70
+ const nodes = [
71
+ makeNode('web', { layer: 'client' }),
72
+ makeNode('gw', { layer: 'edge' }),
73
+ makeNode('db', { layer: 'data' }),
74
+ ];
75
+ const edges = [makeEdge('e1', 'web', 'gw'), makeEdge('e2', 'gw', 'db')];
76
+ const result = runFallbackLayout(nodes, edges);
77
+ expect(result.nodes).toHaveLength(3);
78
+ for (const node of result.nodes) {
79
+ expect(typeof node.position.x).toBe('number');
80
+ expect(typeof node.position.y).toBe('number');
81
+ expect(node.data.tierColor).toMatch(/^#[0-9a-f]{6}$/i);
82
+ }
83
+ const positions = result.nodes.map(n => `${n.position.x},${n.position.y}`);
84
+ expect(new Set(positions).size).toBe(3);
85
+ });
86
+ });
87
+ //# sourceMappingURL=elk-runner.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elk-runner.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/elk-runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,SAAS,QAAQ,CAAC,EAAU,EAAE,YAAuC,EAAE;IACrE,OAAO;QACL,EAAE;QACF,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,EAAE;QACZ,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc;IAC1D,OAAO;QACL,EAAE;QACF,MAAM;QACN,MAAM;QACN,iBAAiB,EAAE,MAAM;QACzB,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,QAAQ;QACvB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;QACjE,SAAS,EAAE,aAAa;QACxB,WAAW,EAAE,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,kBAAkB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,EAAE;YACtC,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE;YAClC,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAElG,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QACjE,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEzD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC;QACrE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,KAAK,GAAG;YACZ,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;SAClC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAExE,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ export interface Checkpoint {
2
+ name: string;
3
+ description?: string;
4
+ savedAt: string;
5
+ state: {
6
+ nodes: unknown[];
7
+ edges: unknown[];
8
+ };
9
+ }
10
+ export declare function saveCheckpoint(name: string, description: string | undefined, state: {
11
+ nodes: unknown[];
12
+ edges: unknown[];
13
+ }): {
14
+ success: boolean;
15
+ name: string;
16
+ savedAt: string;
17
+ nodeCount: number;
18
+ edgeCount: number;
19
+ overwritten?: boolean;
20
+ };
21
+ export declare function loadCheckpoint(name: string): {
22
+ success: boolean;
23
+ name?: string;
24
+ restoredAt?: string;
25
+ nodeCount?: number;
26
+ edgeCount?: number;
27
+ message?: string;
28
+ availableCheckpoints?: Array<{
29
+ name: string;
30
+ description?: string;
31
+ savedAt: string;
32
+ nodeCount: number;
33
+ edgeCount: number;
34
+ }>;
35
+ error?: string;
36
+ };
37
+ export declare function getCheckpointState(name: string): {
38
+ nodes: unknown[];
39
+ edges: unknown[];
40
+ } | null;
41
+ export declare function listCheckpoints(): Array<{
42
+ name: string;
43
+ description?: string;
44
+ savedAt: string;
45
+ nodeCount: number;
46
+ edgeCount: number;
47
+ }>;
48
+ //# sourceMappingURL=checkpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoints.d.ts","sourceRoot":"","sources":["../../src/lib/checkpoints.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,KAAK,EAAE,OAAO,EAAE,CAAC;QACjB,KAAK,EAAE,OAAO,EAAE,CAAC;KAClB,CAAC;CACH;AAID,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,KAAK,EAAE;IAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,GAC5C;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAsBlH;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5H,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAoBA;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,GAAG,IAAI,CAM9F;AAED,wBAAgB,eAAe,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAQtI"}
@@ -0,0 +1,58 @@
1
+ const checkpoints = new Map();
2
+ export function saveCheckpoint(name, description, state) {
3
+ const savedAt = new Date().toISOString();
4
+ const overwritten = checkpoints.has(name);
5
+ checkpoints.set(name, {
6
+ name,
7
+ description,
8
+ savedAt,
9
+ state: {
10
+ nodes: JSON.parse(JSON.stringify(state.nodes)),
11
+ edges: JSON.parse(JSON.stringify(state.edges)),
12
+ },
13
+ });
14
+ return {
15
+ success: true,
16
+ name,
17
+ savedAt,
18
+ nodeCount: state.nodes.length,
19
+ edgeCount: state.edges.length,
20
+ overwritten,
21
+ };
22
+ }
23
+ export function loadCheckpoint(name) {
24
+ const checkpoint = checkpoints.get(name);
25
+ if (!checkpoint) {
26
+ return {
27
+ success: false,
28
+ error: `Checkpoint '${name}' not found`,
29
+ availableCheckpoints: listCheckpoints(),
30
+ };
31
+ }
32
+ const restoredAt = new Date().toISOString();
33
+ return {
34
+ success: true,
35
+ name: checkpoint.name,
36
+ restoredAt,
37
+ nodeCount: checkpoint.state.nodes.length,
38
+ edgeCount: checkpoint.state.edges.length,
39
+ message: 'Diagram restored. Call get_diagram_state to view it.',
40
+ };
41
+ }
42
+ export function getCheckpointState(name) {
43
+ const checkpoint = checkpoints.get(name);
44
+ return checkpoint ? {
45
+ nodes: JSON.parse(JSON.stringify(checkpoint.state.nodes)),
46
+ edges: JSON.parse(JSON.stringify(checkpoint.state.edges)),
47
+ } : null;
48
+ }
49
+ export function listCheckpoints() {
50
+ return Array.from(checkpoints.values()).map(cp => ({
51
+ name: cp.name,
52
+ description: cp.description,
53
+ savedAt: cp.savedAt,
54
+ nodeCount: cp.state.nodes.length,
55
+ edgeCount: cp.state.edges.length,
56
+ }));
57
+ }
58
+ //# sourceMappingURL=checkpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoints.js","sourceRoot":"","sources":["../../src/lib/checkpoints.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;AAElD,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,WAA+B,EAC/B,KAA6C;IAE7C,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1C,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE;QACpB,IAAI;QACJ,WAAW;QACX,OAAO;QACP,KAAK,EAAE;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC/C;KACF,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,OAAO;QACP,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;QAC7B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;QAC7B,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IAUzC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,eAAe,IAAI,aAAa;YACvC,oBAAoB,EAAE,eAAe,EAAE;SACxC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,UAAU;QACV,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QACxC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QACxC,OAAO,EAAE,sDAAsD;KAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC,CAAC,CAAC;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1D,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QAChC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;KACjC,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { CommunicationType, TierType } from '../types/index.js';
2
+ /**
3
+ * Canonical MCP constants — the single source of truth for the tier palette,
4
+ * tier ordering, communication styles, and fallback positions.
5
+ *
6
+ * This palette matches the tool contract (index.ts descriptions + read_me) and
7
+ * is deliberately kept in one place so generate / update / layout / templates /
8
+ * validation never drift from each other. If a color must change, change it
9
+ * here and in the corresponding frontend theme documentation.
10
+ */
11
+ export declare const TIER_ORDER: TierType[];
12
+ /** Tier rank for direction/topology checks — lower number = further upstream (left). */
13
+ export declare const TIER_RANK: Record<TierType, number>;
14
+ export declare const TIER_COLORS: Record<TierType, string>;
15
+ export interface CommStyle {
16
+ color: string;
17
+ dash: string;
18
+ animated: boolean;
19
+ }
20
+ export declare const COMM_COLORS: Record<CommunicationType, CommStyle>;
21
+ export declare const DEFAULT_NODE_WIDTH = 200;
22
+ export declare const DEFAULT_NODE_HEIGHT = 100;
23
+ export declare const DEFAULT_GROUP_WIDTH = 500;
24
+ export declare const DEFAULT_GROUP_HEIGHT = 280;
25
+ /** Fallback tier column positions (LEFT-RIGHT layout). */
26
+ export declare const TIER_X_POSITIONS_LR: Record<TierType, number>;
27
+ export type LayoutDirection = 'RIGHT' | 'DOWN' | 'LEFT' | 'UP';
28
+ export declare function isTier(value: string | undefined): value is TierType;
29
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAErE;;;;;;;;GAQG;AAEH,eAAO,MAAM,UAAU,EAAE,QAAQ,EAQhC,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQ9C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQhD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAM5D,CAAC;AAEF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQxD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE/D,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,QAAQ,CAEnE"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Canonical MCP constants — the single source of truth for the tier palette,
3
+ * tier ordering, communication styles, and fallback positions.
4
+ *
5
+ * This palette matches the tool contract (index.ts descriptions + read_me) and
6
+ * is deliberately kept in one place so generate / update / layout / templates /
7
+ * validation never drift from each other. If a color must change, change it
8
+ * here and in the corresponding frontend theme documentation.
9
+ */
10
+ export const TIER_ORDER = [
11
+ 'client',
12
+ 'edge',
13
+ 'compute',
14
+ 'async',
15
+ 'data',
16
+ 'external',
17
+ 'observe',
18
+ ];
19
+ /** Tier rank for direction/topology checks — lower number = further upstream (left). */
20
+ export const TIER_RANK = {
21
+ client: 0,
22
+ edge: 1,
23
+ compute: 2,
24
+ async: 3,
25
+ data: 4,
26
+ external: 5,
27
+ observe: 6,
28
+ };
29
+ export const TIER_COLORS = {
30
+ client: '#64748b', // slate
31
+ edge: '#6366f1', // indigo
32
+ compute: '#0d9488', // teal
33
+ async: '#d97706', // amber
34
+ data: '#3b82f6', // blue
35
+ external: '#8b5cf6', // violet
36
+ observe: '#6b7280', // gray
37
+ };
38
+ export const COMM_COLORS = {
39
+ sync: { color: '#94a3b8', dash: '', animated: false },
40
+ async: { color: '#f59e0b', dash: '8,4', animated: true },
41
+ stream: { color: '#10b981', dash: '4,2', animated: true },
42
+ event: { color: '#ec4899', dash: '2,3', animated: true },
43
+ dep: { color: '#94a3b8', dash: '6,6', animated: false },
44
+ };
45
+ export const DEFAULT_NODE_WIDTH = 200;
46
+ export const DEFAULT_NODE_HEIGHT = 100;
47
+ export const DEFAULT_GROUP_WIDTH = 500;
48
+ export const DEFAULT_GROUP_HEIGHT = 280;
49
+ /** Fallback tier column positions (LEFT-RIGHT layout). */
50
+ export const TIER_X_POSITIONS_LR = {
51
+ client: 50,
52
+ edge: 400,
53
+ compute: 750,
54
+ async: 1200,
55
+ data: 1550,
56
+ external: 1900,
57
+ observe: 2250,
58
+ };
59
+ export function isTier(value) {
60
+ return !!value && TIER_ORDER.includes(value.toLowerCase());
61
+ }
62
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,QAAQ;IACR,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,UAAU;IACV,SAAS;CACV,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,MAAM,SAAS,GAA6B;IACjD,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAA6B;IACnD,MAAM,EAAI,SAAS,EAAE,QAAQ;IAC7B,IAAI,EAAM,SAAS,EAAE,SAAS;IAC9B,OAAO,EAAG,SAAS,EAAE,OAAO;IAC5B,KAAK,EAAK,SAAS,EAAE,QAAQ;IAC7B,IAAI,EAAM,SAAS,EAAE,OAAO;IAC5B,QAAQ,EAAE,SAAS,EAAE,SAAS;IAC9B,OAAO,EAAG,SAAS,EAAE,OAAO;CAC7B,CAAC;AAQF,MAAM,CAAC,MAAM,WAAW,GAAyC;IAC/D,IAAI,EAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAK,QAAQ,EAAE,KAAK,EAAE;IAC1D,KAAK,EAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,KAAK,EAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,GAAG,EAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;CAC3D,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAA6B;IAC3D,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAC;AAIF,MAAM,UAAU,MAAM,CAAC,KAAyB;IAC9C,OAAO,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAc,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ReactFlowNode, ReactFlowEdge } from '../types/index.js';
2
+ export interface DiagramState {
3
+ nodes: ReactFlowNode[];
4
+ edges: ReactFlowEdge[];
5
+ sessionId?: string;
6
+ }
7
+ export declare function getDiagramState(): DiagramState;
8
+ export declare function setDiagramState(state: DiagramState): void;
9
+ export declare function setDiagramSessionId(sessionId: string | undefined): void;
10
+ export declare function hasDiagramState(): boolean;
11
+ /**
12
+ * Pull the latest diagram for a session from the frontend API and use it as the
13
+ * local working state. Sessions are intentionally world-readable (sharedCanvas),
14
+ * so this is a read-only sync — safe to call without auth. Returns false if the
15
+ * session is missing or the API is unreachable (local state is left untouched).
16
+ */
17
+ export declare function syncDiagramStateFromSession(sessionId: string, apiBase?: string): Promise<boolean>;
18
+ //# sourceMappingURL=diagram-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-state.d.ts","sourceRoot":"","sources":["../../src/lib/diagram-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGtE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,eAAe,IAAI,YAAY,CAS9C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAMzD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAOvE;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAYlB"}
@@ -0,0 +1,55 @@
1
+ import { fetchWithTimeout } from './http.js';
2
+ let currentDiagramState = null;
3
+ export function getDiagramState() {
4
+ if (!currentDiagramState) {
5
+ return { nodes: [], edges: [] };
6
+ }
7
+ return {
8
+ nodes: [...currentDiagramState.nodes],
9
+ edges: [...currentDiagramState.edges],
10
+ ...(currentDiagramState.sessionId ? { sessionId: currentDiagramState.sessionId } : {}),
11
+ };
12
+ }
13
+ export function setDiagramState(state) {
14
+ currentDiagramState = {
15
+ nodes: [...state.nodes],
16
+ edges: [...state.edges],
17
+ ...(state.sessionId ? { sessionId: state.sessionId } : {}),
18
+ };
19
+ }
20
+ export function setDiagramSessionId(sessionId) {
21
+ if (!sessionId)
22
+ return;
23
+ if (!currentDiagramState) {
24
+ currentDiagramState = { nodes: [], edges: [], sessionId };
25
+ }
26
+ else {
27
+ currentDiagramState.sessionId = sessionId;
28
+ }
29
+ }
30
+ export function hasDiagramState() {
31
+ return currentDiagramState !== null;
32
+ }
33
+ /**
34
+ * Pull the latest diagram for a session from the frontend API and use it as the
35
+ * local working state. Sessions are intentionally world-readable (sharedCanvas),
36
+ * so this is a read-only sync — safe to call without auth. Returns false if the
37
+ * session is missing or the API is unreachable (local state is left untouched).
38
+ */
39
+ export async function syncDiagramStateFromSession(sessionId, apiBase) {
40
+ const API_BASE = apiBase || process.env.API_BASE_URL || 'http://localhost:3000';
41
+ try {
42
+ const response = await fetchWithTimeout(`${API_BASE}/api/diagram/session/${encodeURIComponent(sessionId)}`);
43
+ if (!response.ok)
44
+ return false;
45
+ const data = await response.json();
46
+ if (!Array.isArray(data.nodes) || !Array.isArray(data.edges))
47
+ return false;
48
+ setDiagramState({ nodes: data.nodes, edges: data.edges, sessionId });
49
+ return true;
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ }
55
+ //# sourceMappingURL=diagram-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-state.js","sourceRoot":"","sources":["../../src/lib/diagram-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAQ7C,IAAI,mBAAmB,GAAwB,IAAI,CAAC;AAEpD,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;IACD,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACrC,KAAK,EAAE,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACrC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAmB;IACjD,mBAAmB,GAAG;QACpB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACvB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACvB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAA6B;IAC/D,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,mBAAmB,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,mBAAmB,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,mBAAmB,KAAK,IAAI,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,SAAiB,EACjB,OAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,uBAAuB,CAAC;IAChF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,QAAQ,wBAAwB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5G,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0D,CAAC;QAC3F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3E,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { ArchitectureNode, ArchitectureEdge, ReactFlowNode, ReactFlowEdge } from '../types/index.js';
2
+ import type { ElkNode as LocalElkNode, ElkEdge as LocalElkEdge } from '../types/index.js';
3
+ import { type LayoutDirection } from './constants.js';
4
+ export interface LayoutOptions {
5
+ direction?: LayoutDirection;
6
+ spacingMultiplier?: number;
7
+ }
8
+ export interface LayoutResult {
9
+ nodes: ReactFlowNode[];
10
+ edges: ReactFlowEdge[];
11
+ elkPositions: Array<{
12
+ id: string;
13
+ x: number;
14
+ y: number;
15
+ width: number;
16
+ height: number;
17
+ }>;
18
+ }
19
+ export declare function generateELKOptions(direction?: LayoutDirection, density?: 'low' | 'medium' | 'high'): Record<string, string>;
20
+ export declare function computeDensity(nodes: ArchitectureNode[]): 'low' | 'medium' | 'high';
21
+ export declare function nodesToElkFormat(nodes: ArchitectureNode[]): LocalElkNode[];
22
+ export declare function edgesToElkFormat(edges: ArchitectureEdge[]): LocalElkEdge[];
23
+ export declare function runELKLayout(nodes: ArchitectureNode[], edges: ArchitectureEdge[], options?: LayoutOptions): Promise<LayoutResult>;
24
+ export declare function runFallbackLayout(nodes: ArchitectureNode[], edges: ArchitectureEdge[], options?: LayoutOptions): LayoutResult;
25
+ export declare function validateLayout(nodes: ReactFlowNode[], edges: ReactFlowEdge[]): {
26
+ valid: boolean;
27
+ errors: string[];
28
+ };
29
+ //# sourceMappingURL=elk-runner.d.ts.map