xcomponent-ai 0.2.2 → 0.3.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 (42) hide show
  1. package/EVENT-ACCUMULATION-GUIDE.md +505 -0
  2. package/EXTERNAL-API.md +719 -0
  3. package/LLM-GUIDE.md +575 -0
  4. package/QUICKSTART.md +1 -1
  5. package/SCALABILITY.md +455 -0
  6. package/dist/cli.js +170 -63
  7. package/dist/cli.js.map +1 -1
  8. package/dist/component-registry.d.ts +35 -4
  9. package/dist/component-registry.d.ts.map +1 -1
  10. package/dist/component-registry.js +194 -9
  11. package/dist/component-registry.js.map +1 -1
  12. package/dist/external-broker-api.d.ts +205 -0
  13. package/dist/external-broker-api.d.ts.map +1 -0
  14. package/dist/external-broker-api.js +222 -0
  15. package/dist/external-broker-api.js.map +1 -0
  16. package/dist/fsm-runtime.d.ts +47 -17
  17. package/dist/fsm-runtime.d.ts.map +1 -1
  18. package/dist/fsm-runtime.js +333 -136
  19. package/dist/fsm-runtime.js.map +1 -1
  20. package/dist/index.d.ts +4 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +11 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/mermaid-generator.d.ts.map +1 -1
  25. package/dist/mermaid-generator.js +1 -17
  26. package/dist/mermaid-generator.js.map +1 -1
  27. package/dist/message-broker.d.ts +116 -0
  28. package/dist/message-broker.d.ts.map +1 -0
  29. package/dist/message-broker.js +225 -0
  30. package/dist/message-broker.js.map +1 -0
  31. package/dist/types.d.ts +92 -19
  32. package/dist/types.d.ts.map +1 -1
  33. package/examples/advanced-patterns-demo.yaml +339 -0
  34. package/examples/cross-component-demo.yaml +68 -0
  35. package/examples/distributed-demo/README.md +234 -0
  36. package/examples/distributed-demo/order.yaml +71 -0
  37. package/examples/distributed-demo/payment.yaml +60 -0
  38. package/examples/event-accumulation-demo.yaml +172 -0
  39. package/examples/explicit-transitions-demo.yaml +236 -0
  40. package/examples/payment-receiver.yaml +56 -0
  41. package/package.json +8 -1
  42. package/public/dashboard.html +647 -110
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ /**
3
+ * External Broker API
4
+ *
5
+ * Enables external systems to interact with xcomponent-ai via message broker
6
+ * WITHOUT needing HTTP API access. This is useful for:
7
+ * - Microservices communicating via message bus
8
+ * - Event-driven architectures
9
+ * - Language-agnostic integrations (Python, Go, Java can use Redis/RabbitMQ clients)
10
+ * - Real-time subscriptions to FSM events
11
+ *
12
+ * Channels:
13
+ * - `xcomponent:external:commands` - Send events to FSM instances from external systems
14
+ * - `xcomponent:events:state_change` - Subscribe to state transitions
15
+ * - `xcomponent:events:instance_created` - Subscribe to instance creations
16
+ * - `xcomponent:events:instance_disposed` - Subscribe to instance disposals
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.ExternalBrokerAPI = void 0;
20
+ exports.publishExternalCommand = publishExternalCommand;
21
+ exports.subscribeToFSMEvents = subscribeToFSMEvents;
22
+ /**
23
+ * External Broker API
24
+ *
25
+ * Provides message broker-based API for external systems
26
+ */
27
+ class ExternalBrokerAPI {
28
+ broker;
29
+ registry;
30
+ publishEvents;
31
+ handleCommands;
32
+ constructor(config) {
33
+ this.broker = config.broker;
34
+ this.registry = config.registry;
35
+ this.publishEvents = config.publishEvents ?? false;
36
+ this.handleCommands = config.handleCommands ?? true;
37
+ }
38
+ /**
39
+ * Initialize the external API
40
+ * - Subscribe to external commands
41
+ * - Forward FSM events to broker (if enabled)
42
+ */
43
+ async initialize() {
44
+ // Handle external commands
45
+ if (this.handleCommands) {
46
+ await this.subscribeToExternalCommands();
47
+ }
48
+ // Publish FSM events to broker
49
+ if (this.publishEvents) {
50
+ this.forwardFSMEventsToBroker();
51
+ }
52
+ }
53
+ /**
54
+ * Subscribe to external commands channel
55
+ * External systems can publish commands to control FSM instances
56
+ */
57
+ async subscribeToExternalCommands() {
58
+ // Subscribe to direct instance commands
59
+ this.broker.subscribe('external:commands', async (message) => {
60
+ try {
61
+ const cmd = message;
62
+ // Validate command
63
+ if (!cmd.componentName || !cmd.instanceId || !cmd.event) {
64
+ throw new Error('Invalid external command format');
65
+ }
66
+ // Send event to instance
67
+ await this.registry.sendEventToComponent(cmd.componentName, cmd.instanceId, cmd.event);
68
+ }
69
+ catch (error) {
70
+ console.error('[ExternalBrokerAPI] Command error:', error);
71
+ }
72
+ });
73
+ // Subscribe to broadcast commands
74
+ this.broker.subscribe('external:broadcasts', async (message) => {
75
+ try {
76
+ const cmd = message;
77
+ // Validate command
78
+ if (!cmd.componentName || !cmd.machineName || !cmd.currentState || !cmd.event) {
79
+ throw new Error('Invalid external broadcast command format');
80
+ }
81
+ // Broadcast event with optional property filters
82
+ await this.registry.broadcastToComponent(cmd.componentName, cmd.machineName, cmd.event, 'external', cmd.filters, // Pass filters for targeted broadcast
83
+ cmd.currentState);
84
+ }
85
+ catch (error) {
86
+ console.error('[ExternalBrokerAPI] Broadcast error:', error);
87
+ }
88
+ });
89
+ }
90
+ /**
91
+ * Forward FSM events to message broker for external subscribers
92
+ */
93
+ forwardFSMEventsToBroker() {
94
+ // State changes
95
+ this.registry.on('state_change', (data) => {
96
+ this.publishEvent('state_change', data);
97
+ });
98
+ // Instance created
99
+ this.registry.on('instance_created', (data) => {
100
+ this.publishEvent('instance_created', data);
101
+ });
102
+ // Instance disposed
103
+ this.registry.on('instance_disposed', (data) => {
104
+ this.publishEvent('instance_disposed', data);
105
+ });
106
+ // Instance errors
107
+ this.registry.on('instance_error', (data) => {
108
+ this.publishEvent('instance_error', data);
109
+ });
110
+ // Cross-component cascades (for monitoring)
111
+ this.registry.on('cross_component_cascade', (data) => {
112
+ this.publishEvent('cross_component_cascade', data);
113
+ });
114
+ }
115
+ /**
116
+ * Publish an FSM event to the broker
117
+ */
118
+ async publishEvent(type, data) {
119
+ const event = {
120
+ type,
121
+ componentName: data.componentName || 'unknown',
122
+ data,
123
+ timestamp: Date.now(),
124
+ };
125
+ const channel = `xcomponent:events:${type}`;
126
+ try {
127
+ // For in-memory broker, we need to cast the message type
128
+ await this.broker.publish(channel, event);
129
+ }
130
+ catch (error) {
131
+ console.error(`[ExternalBrokerAPI] Failed to publish ${type}:`, error);
132
+ }
133
+ }
134
+ /**
135
+ * Cleanup
136
+ */
137
+ async dispose() {
138
+ if (this.handleCommands) {
139
+ this.broker.unsubscribe('external:commands');
140
+ this.broker.unsubscribe('external:broadcasts');
141
+ }
142
+ this.registry.removeAllListeners();
143
+ }
144
+ }
145
+ exports.ExternalBrokerAPI = ExternalBrokerAPI;
146
+ /**
147
+ * Helper: Publish external command to message broker
148
+ * (For use by external systems)
149
+ *
150
+ * Example (from Node.js):
151
+ * ```typescript
152
+ * import { createClient } from 'redis';
153
+ *
154
+ * const redis = createClient({ url: 'redis://localhost:6379' });
155
+ * await redis.connect();
156
+ *
157
+ * await publishExternalCommand(redis, {
158
+ * componentName: 'OrderComponent',
159
+ * instanceId: 'order-123',
160
+ * event: { type: 'VALIDATE', payload: {} }
161
+ * });
162
+ * ```
163
+ *
164
+ * Example (from Python):
165
+ * ```python
166
+ * import redis
167
+ * import json
168
+ *
169
+ * r = redis.Redis(host='localhost', port=6379)
170
+ * r.publish('xcomponent:external:commands', json.dumps({
171
+ * 'componentName': 'OrderComponent',
172
+ * 'instanceId': 'order-123',
173
+ * 'event': {'type': 'VALIDATE', 'payload': {}}
174
+ * }))
175
+ * ```
176
+ */
177
+ async function publishExternalCommand(redisClient, command) {
178
+ await redisClient.publish('xcomponent:external:commands', JSON.stringify(command));
179
+ }
180
+ /**
181
+ * Helper: Subscribe to FSM events from external systems
182
+ *
183
+ * Example (from Node.js):
184
+ * ```typescript
185
+ * import { createClient } from 'redis';
186
+ *
187
+ * const redis = createClient({ url: 'redis://localhost:6379' });
188
+ * await redis.connect();
189
+ *
190
+ * await subscribeToFSMEvents(redis, 'state_change', (event) => {
191
+ * console.log('State changed:', event);
192
+ * });
193
+ * ```
194
+ *
195
+ * Example (from Python):
196
+ * ```python
197
+ * import redis
198
+ * import json
199
+ *
200
+ * r = redis.Redis(host='localhost', port=6379)
201
+ * pubsub = r.pubsub()
202
+ * pubsub.subscribe('xcomponent:events:state_change')
203
+ *
204
+ * for message in pubsub.listen():
205
+ * if message['type'] == 'message':
206
+ * event = json.loads(message['data'])
207
+ * print('State changed:', event)
208
+ * ```
209
+ */
210
+ async function subscribeToFSMEvents(redisClient, eventType, handler) {
211
+ const channel = `xcomponent:events:${eventType}`;
212
+ await redisClient.subscribe(channel, (message) => {
213
+ try {
214
+ const event = JSON.parse(message);
215
+ handler(event);
216
+ }
217
+ catch (error) {
218
+ console.error(`Failed to parse FSM event from ${channel}:`, error);
219
+ }
220
+ });
221
+ }
222
+ //# sourceMappingURL=external-broker-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-broker-api.js","sourceRoot":"","sources":["../src/external-broker-api.ts"],"names":[],"mappings":"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"}
@@ -36,28 +36,44 @@ export declare class FSMRuntime extends EventEmitter {
36
36
  createInstance(machineName: string, initialContext?: Record<string, any>): string;
37
37
  /**
38
38
  * Send event to an instance
39
+ *
40
+ * Supports multiple transitions from same state with same event.
41
+ * When multiple transitions exist with guards, uses "first matching guard wins" semantics.
39
42
  */
40
43
  sendEvent(instanceId: string, event: FSMEvent): Promise<void>;
41
44
  /**
42
- * Broadcast event to all matching instances (XComponent-style property matching)
45
+ * Broadcast event to all matching instances
43
46
  *
44
- * This method implements XComponent's property-based instance routing:
45
- * - Finds all instances of the target machine in the specified state
46
- * - Evaluates matching rules (property equality checks)
47
- * - Routes event to ALL instances where matching rules pass
47
+ * Two modes:
48
+ * 1. Simple broadcast - send to all instances (any state or specific state)
49
+ * 2. MatchingRules - XComponent-style routing based on event payload
48
50
  *
49
- * Example:
50
- * // 100 Order instances exist
51
- * // Event: ExecutionInput { OrderId: 42, Quantity: 500 }
52
- * // Matching rule: ExecutionInput.OrderId = Order.Id
53
- * // → Automatically routes to Order instance with Id=42
51
+ * Filtering via matchingRules in YAML, not in code.
54
52
  *
55
53
  * @param machineName Target state machine name
56
- * @param currentState Current state filter (only instances in this state)
57
54
  * @param event Event to broadcast
55
+ * @param currentState Optional state filter. Omit to broadcast to all states
58
56
  * @returns Number of instances that received the event
59
- */
60
- broadcastEvent(machineName: string, currentState: string, event: FSMEvent): Promise<number>;
57
+ *
58
+ * @example
59
+ * // Broadcast to all Orders (any state)
60
+ * await runtime.broadcastEvent('Order', {type: 'ALERT', payload: {}});
61
+ *
62
+ * @example
63
+ * // Broadcast to Orders in Pending state only
64
+ * await runtime.broadcastEvent('Order', {type: 'TIMEOUT', payload: {}}, 'Pending');
65
+ *
66
+ * @example
67
+ * // Filtering via matchingRules in YAML:
68
+ * // transitions:
69
+ * // - from: Monitoring
70
+ * // to: Monitoring
71
+ * // event: ORDER_UPDATE
72
+ * // matchingRules:
73
+ * // - eventProperty: payload.customerId
74
+ * // instanceProperty: customerId
75
+ */
76
+ broadcastEvent(machineName: string, event: FSMEvent, currentState?: string): Promise<number>;
61
77
  /**
62
78
  * Find instances that match the property matching rules
63
79
  *
@@ -100,10 +116,6 @@ export declare class FSMRuntime extends EventEmitter {
100
116
  * @returns Matching transition or null
101
117
  */
102
118
  private findTransition;
103
- /**
104
- * Evaluate guards
105
- */
106
- private evaluateGuards;
107
119
  /**
108
120
  * Execute transition
109
121
  *
@@ -121,6 +133,13 @@ export declare class FSMRuntime extends EventEmitter {
121
133
  * use a single timer wheel that manages all timeouts (O(1) timer).
122
134
  */
123
135
  private setupTimeouts;
136
+ /**
137
+ * Setup timeout transitions for self-loop
138
+ *
139
+ * Only sets up timeouts that should reset (resetOnTransition !== false).
140
+ * Timeouts with resetOnTransition: false are already running and shouldn't be recreated.
141
+ */
142
+ private setupTimeoutsForSelfLoop;
124
143
  /**
125
144
  * Setup auto-transitions (XComponent-style automatic transitions)
126
145
  *
@@ -178,6 +197,13 @@ export declare class FSMRuntime extends EventEmitter {
178
197
  * Clear timeouts for instance (using timer wheel)
179
198
  */
180
199
  private clearTimeouts;
200
+ /**
201
+ * Clear timeouts for self-loop transition
202
+ *
203
+ * Only clears timeouts that should be reset on self-loop (resetOnTransition !== false).
204
+ * Timeouts with resetOnTransition: false continue running.
205
+ */
206
+ private clearTimeoutsForSelfLoop;
181
207
  /**
182
208
  * Get instance
183
209
  */
@@ -242,6 +268,10 @@ export declare class FSMRuntime extends EventEmitter {
242
268
  * Get component definition
243
269
  */
244
270
  getComponent(): Component;
271
+ /**
272
+ * Get component name
273
+ */
274
+ getComponentName(): string;
245
275
  /**
246
276
  * Set component registry for cross-component communication
247
277
  */
@@ -1 +1 @@
1
- {"version":3,"file":"fsm-runtime.d.ts","sourceRoot":"","sources":["../src/fsm-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fsm-runtime.d.ts","sourceRoot":"","sources":["../src/fsm-runtime.ts"],"names":[],"mappings":"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"}