xcomponent-ai 0.4.0 β†’ 0.4.2

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/README.md CHANGED
@@ -8,9 +8,34 @@
8
8
  [![Node](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen.svg)](https://nodejs.org)
9
9
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue.svg)](https://www.typescriptlang.org/)
10
10
 
11
- > **LLM-First Framework**: Event-driven FSM runtime designed for AI agents (Claude, GPT) to build applications with sanctuarized business logic. Multi-instance state machines, cross-component communication, event sourcing, and production-ready persistence.
11
+ > **La logique mΓ©tier que l'IA ne peut pas deviner.**
12
12
 
13
- **🎯 Built for LLMs**: xcomponent-ai is specifically designed for AI agents to structure applications with immutable business logic in YAML, while code remains a thin integration layer.
13
+ ## πŸ’‘ Le problΓ¨me
14
+
15
+ Les LLM peuvent générer du code, mais ils ne peuvent pas inventer votre logique métier. Un workflow d'approbation, un circuit de validation, les règles de compliance de votre domaine - tout cela vient de **vous**.
16
+
17
+ **xcomponent-ai** sΓ©pare ce qui est **durable** (la logique mΓ©tier en YAML) de ce qui est **jetable** (le code d'implΓ©mentation gΓ©nΓ©rΓ© par l'IA).
18
+
19
+ ```
20
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
21
+ β”‚ πŸ“‹ YAML (Logique mΓ©tier) β”‚ πŸ’» Code (ImplΓ©mentation) β”‚
22
+ β”‚ ───────────────────────── β”‚ ──────────────────────── β”‚
23
+ β”‚ β€’ Γ‰tats et transitions β”‚ β€’ API routes β”‚
24
+ │ ‒ Règles de compliance │ ‒ UI components │
25
+ β”‚ β€’ Guards et conditions β”‚ β€’ IntΓ©grations externes β”‚
26
+ β”‚ β€’ Workflows d'approbation β”‚ β€’ Triggered methods β”‚
27
+ β”‚ β”‚ β”‚
28
+ β”‚ βœ… Durable, auditable β”‚ ♻️ RΓ©gΓ©nΓ©rable par LLM β”‚
29
+ β”‚ βœ… VersionnΓ© dans Git β”‚ ♻️ Adaptable facilement β”‚
30
+ β”‚ βœ… Lisible par non-devs β”‚ β”‚
31
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
32
+ ```
33
+
34
+ ## 🎯 Pour qui ?
35
+
36
+ - **DΓ©veloppeurs** utilisant des LLM (Claude, GPT) pour gΓ©nΓ©rer du code
37
+ - **Γ‰quipes** qui veulent sanctuariser leur logique mΓ©tier
38
+ - **Entreprises** avec des besoins de traΓ§abilitΓ© et compliance
14
39
 
15
40
  ## πŸ“¦ Installation
16
41
 
@@ -114,10 +139,13 @@ npm install
114
139
  ### CLI Usage Examples
115
140
 
116
141
  ```bash
142
+ # Validate a component YAML file
143
+ xcomponent-ai validate examples/e-commerce-order/component.yaml
144
+
117
145
  # Create FSM from natural language (AI-powered)
118
146
  xcomponent-ai ai-create "Trading order with compliance guards for amounts over 100k" -o trading.yaml
119
147
 
120
- # Load and validate FSM
148
+ # Load and inspect FSM
121
149
  xcomponent-ai load examples/trading.yaml
122
150
 
123
151
  # Run instance with events
@@ -556,14 +584,22 @@ Coverage target: **>80%** (branches, functions, lines, statements)
556
584
  # Generate API docs
557
585
  npm run doc
558
586
 
559
- # Open docs/index.html
587
+ # Open docs/api/index.html
560
588
  ```
561
589
 
562
590
  **Guides**:
591
+ - **[LLM Generation Guide](docs/llm-guide.md)** - Complete guide for LLM-based YAML generation
563
592
  - **[LLM Framework Guide](LLM_FRAMEWORK_GUIDE.md)** - Complete usage for LLMs (Claude/GPT)
564
593
  - **[Persistence Guide](PERSISTENCE.md)** - Database configuration and event sourcing
565
594
  - **[Quick Start](QUICKSTART.md)** - Getting started guide
566
- - **[Full Project Example](examples/full-project-structure.md)** - E-commerce application
595
+
596
+ **Business Examples**:
597
+ - **[E-Commerce Order](examples/e-commerce-order/)** - Order processing with payment and shipping (Saga pattern)
598
+ - **[Approval Workflow](examples/approval-workflow/)** - Multi-level approval with escalation
599
+ - **[Subscription Lifecycle](examples/subscription-lifecycle/)** - SaaS subscription management
600
+
601
+ **Schema**:
602
+ - **[JSON Schema](schemas/component.schema.json)** - Validation schema for component YAML files
567
603
 
568
604
  **JSDoc coverage**: All public APIs documented
569
605
 
@@ -594,7 +630,7 @@ Apache License 2.0 - see [LICENSE](LICENSE)
594
630
 
595
631
  ## πŸ”— Links
596
632
 
597
- - **Documentation**: [API Docs](docs/index.html)
633
+ - **Documentation**: [API Docs](docs/api/index.html)
598
634
  - **Examples**: [examples/](examples/)
599
635
  - **Issues**: [GitHub Issues](https://github.com/fredericcarre/mayele-ai/issues)
600
636
  - **Discussions**: [GitHub Discussions](https://github.com/fredericcarre/mayele-ai/discussions)
package/dist/cli.js CHANGED
@@ -265,6 +265,158 @@ program
265
265
  process.exit(1);
266
266
  }
267
267
  });
268
+ /**
269
+ * Validate component
270
+ */
271
+ program
272
+ .command('validate <file>')
273
+ .description('Validate FSM component YAML file')
274
+ .option('--strict', 'Enable strict validation (warnings become errors)')
275
+ .action(async (file, options) => {
276
+ try {
277
+ const resolvedPath = resolveFilePath(file);
278
+ const content = await fs.readFile(resolvedPath, 'utf-8');
279
+ const component = yaml.parse(content);
280
+ console.log(`\nπŸ” Validating component: ${component.name}\n`);
281
+ let errors = [];
282
+ let warnings = [];
283
+ // Check required fields
284
+ if (!component.name) {
285
+ errors.push('Missing required field: name');
286
+ }
287
+ if (!component.stateMachines || component.stateMachines.length === 0) {
288
+ errors.push('Component must have at least one state machine');
289
+ }
290
+ // First pass: collect all machine names
291
+ const machineNames = new Set();
292
+ component.stateMachines?.forEach(machine => {
293
+ if (machine.name) {
294
+ machineNames.add(machine.name);
295
+ }
296
+ });
297
+ // Second pass: validate each state machine
298
+ component.stateMachines?.forEach((machine, idx) => {
299
+ const prefix = `Machine "${machine.name || `#${idx}`}"`;
300
+ if (!machine.name) {
301
+ errors.push(`${prefix}: Missing required field: name`);
302
+ }
303
+ else {
304
+ // Check for duplicate names
305
+ const count = component.stateMachines.filter(m => m.name === machine.name).length;
306
+ if (count > 1) {
307
+ errors.push(`${prefix}: Duplicate machine name`);
308
+ }
309
+ }
310
+ if (!machine.initialState) {
311
+ errors.push(`${prefix}: Missing required field: initialState`);
312
+ }
313
+ if (!machine.states || machine.states.length === 0) {
314
+ errors.push(`${prefix}: Must have at least one state`);
315
+ }
316
+ // Build state set
317
+ const stateNames = new Set();
318
+ machine.states?.forEach(state => {
319
+ if (stateNames.has(state.name)) {
320
+ errors.push(`${prefix}: Duplicate state name "${state.name}"`);
321
+ }
322
+ stateNames.add(state.name);
323
+ });
324
+ // Check initialState exists
325
+ if (machine.initialState && !stateNames.has(machine.initialState)) {
326
+ errors.push(`${prefix}: initialState "${machine.initialState}" does not exist in states`);
327
+ }
328
+ // Validate transitions
329
+ const statesWithOutgoing = new Set();
330
+ const terminalStates = new Set();
331
+ machine.states?.forEach(state => {
332
+ if (state.type === 'final' || state.type === 'error') {
333
+ terminalStates.add(state.name);
334
+ }
335
+ });
336
+ machine.transitions?.forEach((transition, tidx) => {
337
+ const tPrefix = `${prefix} transition #${tidx + 1}`;
338
+ if (!transition.from) {
339
+ errors.push(`${tPrefix}: Missing required field: from`);
340
+ }
341
+ else if (!stateNames.has(transition.from)) {
342
+ errors.push(`${tPrefix}: "from" state "${transition.from}" does not exist`);
343
+ }
344
+ else {
345
+ statesWithOutgoing.add(transition.from);
346
+ }
347
+ if (!transition.to) {
348
+ errors.push(`${tPrefix}: Missing required field: to`);
349
+ }
350
+ else if (!stateNames.has(transition.to)) {
351
+ errors.push(`${tPrefix}: "to" state "${transition.to}" does not exist`);
352
+ }
353
+ if (!transition.event) {
354
+ errors.push(`${tPrefix}: Missing required field: event`);
355
+ }
356
+ // Check inter_machine transitions
357
+ if (transition.type === 'inter_machine') {
358
+ if (!transition.targetMachine) {
359
+ errors.push(`${tPrefix}: inter_machine transition must have targetMachine`);
360
+ }
361
+ else if (!machineNames.has(transition.targetMachine) && transition.targetMachine !== machine.name) {
362
+ warnings.push(`${tPrefix}: targetMachine "${transition.targetMachine}" not found in this component (may be external)`);
363
+ }
364
+ }
365
+ // Check timeout transitions
366
+ if (transition.type === 'timeout' && !transition.timeoutMs) {
367
+ errors.push(`${tPrefix}: timeout transition must have timeoutMs value`);
368
+ }
369
+ });
370
+ // Check for terminal states (states with no outgoing transitions)
371
+ machine.states?.forEach(state => {
372
+ if (!statesWithOutgoing.has(state.name) && state.type !== 'final' && state.type !== 'error') {
373
+ terminalStates.add(state.name);
374
+ }
375
+ });
376
+ // Check reachability from initial state (simplified)
377
+ if (terminalStates.size === 0) {
378
+ warnings.push(`${prefix}: No terminal states detected (final, error, or states without outgoing transitions)`);
379
+ }
380
+ });
381
+ // Check entryMachine
382
+ if (component.entryMachine && !machineNames.has(component.entryMachine)) {
383
+ errors.push(`entryMachine "${component.entryMachine}" does not exist in stateMachines`);
384
+ }
385
+ // Report results
386
+ console.log('πŸ“Š Validation Results\n');
387
+ if (errors.length === 0 && warnings.length === 0) {
388
+ console.log('βœ… Component is valid!\n');
389
+ console.log(` ${component.stateMachines.length} state machine(s)`);
390
+ let totalStates = 0;
391
+ let totalTransitions = 0;
392
+ component.stateMachines.forEach(m => {
393
+ totalStates += m.states?.length || 0;
394
+ totalTransitions += m.transitions?.length || 0;
395
+ });
396
+ console.log(` ${totalStates} state(s) total`);
397
+ console.log(` ${totalTransitions} transition(s) total`);
398
+ }
399
+ else {
400
+ if (errors.length > 0) {
401
+ console.log(`❌ ${errors.length} error(s):\n`);
402
+ errors.forEach(e => console.log(` β€’ ${e}`));
403
+ console.log('');
404
+ }
405
+ if (warnings.length > 0) {
406
+ console.log(`⚠️ ${warnings.length} warning(s):\n`);
407
+ warnings.forEach(w => console.log(` β€’ ${w}`));
408
+ console.log('');
409
+ }
410
+ if (errors.length > 0 || (options.strict && warnings.length > 0)) {
411
+ process.exit(1);
412
+ }
413
+ }
414
+ }
415
+ catch (error) {
416
+ console.error(`\n❌ Validation failed: ${error.message}\n`);
417
+ process.exit(1);
418
+ }
419
+ });
268
420
  /**
269
421
  * Run FSM instance
270
422
  */
@@ -647,6 +799,7 @@ program
647
799
  }
648
800
  });
649
801
  // Mermaid diagram endpoint
802
+ // Supports optional ?currentState=stateName to highlight the current state
650
803
  app.get('/api/components/:componentName/diagrams/:machineName', (req, res) => {
651
804
  const component = registry.getComponent(req.params.componentName);
652
805
  if (!component) {
@@ -656,9 +809,12 @@ program
656
809
  if (!machine) {
657
810
  return res.status(404).json({ error: 'State machine not found' });
658
811
  }
659
- const { generateStyledMermaidDiagram } = require('./mermaid-generator');
660
- const diagram = generateStyledMermaidDiagram(machine);
661
- res.json({ diagram });
812
+ const { generateStyledMermaidDiagram, detectTerminalStates, getTransitionsInfo } = require('./mermaid-generator');
813
+ const currentState = req.query.currentState;
814
+ const diagram = generateStyledMermaidDiagram(machine, currentState);
815
+ const terminalStates = Array.from(detectTerminalStates(machine));
816
+ const transitions = getTransitionsInfo(machine);
817
+ res.json({ diagram, terminalStates, transitions });
662
818
  });
663
819
  // WebSocket Integration
664
820
  io.on('connection', (socket) => {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,40 @@
2
2
  * Generate Mermaid stateDiagram-v2 syntax from FSM definition
3
3
  */
4
4
  import { StateMachine } from './types';
5
+ /**
6
+ * Transition info for UI interaction
7
+ */
8
+ export interface TransitionInfo {
9
+ index: number;
10
+ from: string;
11
+ to: string;
12
+ event: string;
13
+ type: string;
14
+ targetMachine?: string;
15
+ }
16
+ /**
17
+ * Detect terminal states (states with no outgoing transitions)
18
+ */
19
+ export declare function detectTerminalStates(machine: StateMachine): Set<string>;
20
+ /**
21
+ * Detect inter-machine transitions
22
+ */
23
+ export declare function detectInterMachineTransitions(machine: StateMachine): TransitionInfo[];
24
+ /**
25
+ * Get all transitions with their indices for UI interaction
26
+ */
27
+ export declare function getTransitionsInfo(machine: StateMachine): TransitionInfo[];
5
28
  /**
6
29
  * Generate Mermaid diagram for a state machine
7
30
  */
8
31
  export declare function generateMermaidDiagram(machine: StateMachine): string;
9
32
  /**
10
33
  * Generate Mermaid diagram with styling based on state metadata
34
+ * - Entry states: yellow
35
+ * - Terminal states (no outgoing transitions): green
36
+ * - Error states: red
37
+ * - Current state (if provided): highlighted with thick border
38
+ * - Inter-machine transitions: green arrows
11
39
  */
12
- export declare function generateStyledMermaidDiagram(machine: StateMachine): string;
40
+ export declare function generateStyledMermaidDiagram(machine: StateMachine, currentState?: string): string;
13
41
  //# sourceMappingURL=mermaid-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mermaid-generator.d.ts","sourceRoot":"","sources":["../src/mermaid-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CA0BpE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CA6C1E"}
1
+ {"version":3,"file":"mermaid-generator.d.ts","sourceRoot":"","sources":["../src/mermaid-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAevE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,EAAE,CAiBrF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,EAAE,CAS1E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAgCpE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAwER"}
@@ -3,8 +3,59 @@
3
3
  * Generate Mermaid stateDiagram-v2 syntax from FSM definition
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.detectTerminalStates = detectTerminalStates;
7
+ exports.detectInterMachineTransitions = detectInterMachineTransitions;
8
+ exports.getTransitionsInfo = getTransitionsInfo;
6
9
  exports.generateMermaidDiagram = generateMermaidDiagram;
7
10
  exports.generateStyledMermaidDiagram = generateStyledMermaidDiagram;
11
+ /**
12
+ * Detect terminal states (states with no outgoing transitions)
13
+ */
14
+ function detectTerminalStates(machine) {
15
+ const statesWithOutgoingTransitions = new Set();
16
+ machine.transitions.forEach(transition => {
17
+ statesWithOutgoingTransitions.add(transition.from);
18
+ });
19
+ const terminalStates = new Set();
20
+ machine.states.forEach(state => {
21
+ if (!statesWithOutgoingTransitions.has(state.name)) {
22
+ terminalStates.add(state.name);
23
+ }
24
+ });
25
+ return terminalStates;
26
+ }
27
+ /**
28
+ * Detect inter-machine transitions
29
+ */
30
+ function detectInterMachineTransitions(machine) {
31
+ const interMachineTransitions = [];
32
+ machine.transitions.forEach((transition, index) => {
33
+ if (transition.type === 'inter_machine' && transition.targetMachine) {
34
+ interMachineTransitions.push({
35
+ index: index + 1, // +1 because [*] --> initial is index 0
36
+ from: transition.from,
37
+ to: transition.to,
38
+ event: transition.event,
39
+ type: transition.type,
40
+ targetMachine: transition.targetMachine
41
+ });
42
+ }
43
+ });
44
+ return interMachineTransitions;
45
+ }
46
+ /**
47
+ * Get all transitions with their indices for UI interaction
48
+ */
49
+ function getTransitionsInfo(machine) {
50
+ return machine.transitions.map((transition, index) => ({
51
+ index: index + 1, // +1 because [*] --> initial is index 0
52
+ from: transition.from,
53
+ to: transition.to,
54
+ event: transition.event,
55
+ type: transition.type || 'regular',
56
+ targetMachine: transition.targetMachine
57
+ }));
58
+ }
8
59
  /**
9
60
  * Generate Mermaid diagram for a state machine
10
61
  */
@@ -18,59 +69,95 @@ function generateMermaidDiagram(machine) {
18
69
  // Add all transitions
19
70
  machine.transitions.forEach(transition => {
20
71
  const transitionLabel = transition.event;
21
- lines.push(` ${transition.from} --> ${transition.to}: ${transitionLabel}`);
72
+ // Add target machine info for inter-machine transitions
73
+ if (transition.type === 'inter_machine' && transition.targetMachine) {
74
+ lines.push(` ${transition.from} --> ${transition.to}: ${transitionLabel} [β†’${transition.targetMachine}]`);
75
+ }
76
+ else {
77
+ lines.push(` ${transition.from} --> ${transition.to}: ${transitionLabel}`);
78
+ }
22
79
  });
23
80
  lines.push('');
24
- // Mark final and error states
25
- machine.states.forEach(state => {
26
- if (state.type === 'final') {
27
- lines.push(` ${state.name} --> [*]`);
28
- }
81
+ // Detect terminal states (no outgoing transitions)
82
+ const terminalStates = detectTerminalStates(machine);
83
+ // Mark terminal states with arrow to [*]
84
+ terminalStates.forEach(stateName => {
85
+ lines.push(` ${stateName} --> [*]`);
29
86
  });
30
87
  return lines.join('\n');
31
88
  }
32
89
  /**
33
90
  * Generate Mermaid diagram with styling based on state metadata
91
+ * - Entry states: yellow
92
+ * - Terminal states (no outgoing transitions): green
93
+ * - Error states: red
94
+ * - Current state (if provided): highlighted with thick border
95
+ * - Inter-machine transitions: green arrows
34
96
  */
35
- function generateStyledMermaidDiagram(machine) {
97
+ function generateStyledMermaidDiagram(machine, currentState) {
36
98
  const baseDiagram = generateMermaidDiagram(machine);
37
99
  const styleLines = [];
38
100
  // Define color classes once at the end
39
101
  const usedClasses = new Set();
102
+ // Detect terminal states automatically
103
+ const terminalStates = detectTerminalStates(machine);
104
+ // Detect inter-machine transitions for link styling
105
+ const interMachineTransitions = detectInterMachineTransitions(machine);
40
106
  // Collect state styles
41
107
  const stateStyles = [];
42
108
  machine.states.forEach(state => {
43
109
  let className = '';
44
- if (state.type === 'entry') {
110
+ // Current state takes priority for highlighting
111
+ if (currentState && state.name === currentState) {
112
+ className = 'currentState';
113
+ usedClasses.add('currentState');
114
+ }
115
+ else if (state.type === 'entry') {
45
116
  className = 'entryState';
46
117
  usedClasses.add('entryState');
47
118
  }
48
- else if (state.type === 'final') {
49
- className = 'finalState';
50
- usedClasses.add('finalState');
51
- }
52
119
  else if (state.type === 'error') {
53
120
  className = 'errorState';
54
121
  usedClasses.add('errorState');
55
122
  }
123
+ else if (state.type === 'final' || terminalStates.has(state.name)) {
124
+ // Terminal states (explicit final or auto-detected)
125
+ className = 'terminalState';
126
+ usedClasses.add('terminalState');
127
+ }
56
128
  if (className) {
57
129
  stateStyles.push(` class ${state.name} ${className}`);
58
130
  }
59
131
  });
60
- // Add class definitions
132
+ // Add class definitions for states
133
+ if (usedClasses.has('currentState')) {
134
+ styleLines.push(` classDef currentState fill:#3b82f6,stroke:#1d4ed8,stroke-width:4px,color:#fff`);
135
+ }
61
136
  if (usedClasses.has('entryState')) {
62
137
  styleLines.push(` classDef entryState fill:#fbbf24,stroke:#f59e0b,stroke-width:3px,color:#000`);
63
138
  }
64
- if (usedClasses.has('finalState')) {
65
- styleLines.push(` classDef finalState fill:#10b981,stroke:#059669,stroke-width:3px,color:#fff`);
139
+ if (usedClasses.has('terminalState')) {
140
+ styleLines.push(` classDef terminalState fill:#10b981,stroke:#059669,stroke-width:3px,color:#fff`);
66
141
  }
67
142
  if (usedClasses.has('errorState')) {
68
143
  styleLines.push(` classDef errorState fill:#ef4444,stroke:#dc2626,stroke-width:3px,color:#fff`);
69
144
  }
70
- // Combine: base diagram + class definitions + state class applications
71
- if (styleLines.length > 0 || stateStyles.length > 0) {
72
- return baseDiagram + '\n\n' + styleLines.join('\n') + '\n' + stateStyles.join('\n');
145
+ // Add link styles for inter-machine transitions (green arrows)
146
+ const linkStyles = [];
147
+ interMachineTransitions.forEach(t => {
148
+ linkStyles.push(` linkStyle ${t.index} stroke:#10b981,stroke-width:3px`);
149
+ });
150
+ // Combine: base diagram + class definitions + state class applications + link styles
151
+ let result = baseDiagram;
152
+ if (styleLines.length > 0 || stateStyles.length > 0 || linkStyles.length > 0) {
153
+ result += '\n\n' + styleLines.join('\n');
154
+ if (stateStyles.length > 0) {
155
+ result += '\n' + stateStyles.join('\n');
156
+ }
157
+ if (linkStyles.length > 0) {
158
+ result += '\n' + linkStyles.join('\n');
159
+ }
73
160
  }
74
- return baseDiagram;
161
+ return result;
75
162
  }
76
163
  //# sourceMappingURL=mermaid-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mermaid-generator.js","sourceRoot":"","sources":["../src/mermaid-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mermaid-generator.js","sourceRoot":"","sources":["../src/mermaid-generator.ts"],"names":[],"mappings":"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"}