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.
- package/EVENT-ACCUMULATION-GUIDE.md +505 -0
- package/EXTERNAL-API.md +719 -0
- package/LLM-GUIDE.md +575 -0
- package/QUICKSTART.md +1 -1
- package/SCALABILITY.md +455 -0
- package/dist/cli.js +170 -63
- package/dist/cli.js.map +1 -1
- package/dist/component-registry.d.ts +35 -4
- package/dist/component-registry.d.ts.map +1 -1
- package/dist/component-registry.js +194 -9
- package/dist/component-registry.js.map +1 -1
- package/dist/external-broker-api.d.ts +205 -0
- package/dist/external-broker-api.d.ts.map +1 -0
- package/dist/external-broker-api.js +222 -0
- package/dist/external-broker-api.js.map +1 -0
- package/dist/fsm-runtime.d.ts +47 -17
- package/dist/fsm-runtime.d.ts.map +1 -1
- package/dist/fsm-runtime.js +333 -136
- package/dist/fsm-runtime.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/mermaid-generator.d.ts.map +1 -1
- package/dist/mermaid-generator.js +1 -17
- package/dist/mermaid-generator.js.map +1 -1
- package/dist/message-broker.d.ts +116 -0
- package/dist/message-broker.d.ts.map +1 -0
- package/dist/message-broker.js +225 -0
- package/dist/message-broker.js.map +1 -0
- package/dist/types.d.ts +92 -19
- package/dist/types.d.ts.map +1 -1
- package/examples/advanced-patterns-demo.yaml +339 -0
- package/examples/cross-component-demo.yaml +68 -0
- package/examples/distributed-demo/README.md +234 -0
- package/examples/distributed-demo/order.yaml +71 -0
- package/examples/distributed-demo/payment.yaml +60 -0
- package/examples/event-accumulation-demo.yaml +172 -0
- package/examples/explicit-transitions-demo.yaml +236 -0
- package/examples/payment-receiver.yaml +56 -0
- package/package.json +8 -1
- package/public/dashboard.html +647 -110
|
@@ -15,16 +15,30 @@
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.ComponentRegistry = void 0;
|
|
17
17
|
const events_1 = require("events");
|
|
18
|
+
const message_broker_1 = require("./message-broker");
|
|
18
19
|
/**
|
|
19
20
|
* ComponentRegistry manages multiple components and enables cross-component communication
|
|
20
21
|
*/
|
|
21
22
|
class ComponentRegistry extends events_1.EventEmitter {
|
|
22
23
|
runtimes;
|
|
23
24
|
components;
|
|
24
|
-
|
|
25
|
+
broker;
|
|
26
|
+
/**
|
|
27
|
+
* Create a ComponentRegistry
|
|
28
|
+
*
|
|
29
|
+
* @param broker Message broker for cross-component communication (defaults to InMemoryMessageBroker)
|
|
30
|
+
*/
|
|
31
|
+
constructor(broker) {
|
|
25
32
|
super();
|
|
26
33
|
this.runtimes = new Map();
|
|
27
34
|
this.components = new Map();
|
|
35
|
+
this.broker = broker || new message_broker_1.InMemoryMessageBroker();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Initialize the registry and connect the message broker
|
|
39
|
+
*/
|
|
40
|
+
async initialize() {
|
|
41
|
+
await this.broker.connect();
|
|
28
42
|
}
|
|
29
43
|
/**
|
|
30
44
|
* Register a component with its runtime
|
|
@@ -38,6 +52,61 @@ class ComponentRegistry extends events_1.EventEmitter {
|
|
|
38
52
|
}
|
|
39
53
|
this.runtimes.set(component.name, runtime);
|
|
40
54
|
this.components.set(component.name, component);
|
|
55
|
+
// Set registry reference in runtime for cross-component communication
|
|
56
|
+
runtime.setRegistry(this);
|
|
57
|
+
// Forward runtime events to registry (for ExternalBrokerAPI and monitoring)
|
|
58
|
+
runtime.on('state_change', (data) => {
|
|
59
|
+
this.emit('state_change', { ...data, componentName: component.name });
|
|
60
|
+
});
|
|
61
|
+
runtime.on('instance_created', (data) => {
|
|
62
|
+
this.emit('instance_created', { ...data, componentName: component.name });
|
|
63
|
+
});
|
|
64
|
+
runtime.on('instance_disposed', (data) => {
|
|
65
|
+
this.emit('instance_disposed', { ...data, componentName: component.name });
|
|
66
|
+
});
|
|
67
|
+
runtime.on('error', (data) => {
|
|
68
|
+
this.emit('instance_error', { ...data, componentName: component.name });
|
|
69
|
+
});
|
|
70
|
+
// Subscribe to messages for this component via message broker
|
|
71
|
+
this.broker.subscribe(component.name, async (message) => {
|
|
72
|
+
try {
|
|
73
|
+
// Get instances of the target machine
|
|
74
|
+
let instances;
|
|
75
|
+
if (!message.targetState || message.targetState === '*') {
|
|
76
|
+
// Broadcast to all instances of this machine (any state)
|
|
77
|
+
instances = runtime.getAllInstances().filter(inst => inst.machineName === message.targetMachine);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// Filter by specific state
|
|
81
|
+
instances = runtime.getAllInstances().filter(inst => inst.machineName === message.targetMachine &&
|
|
82
|
+
inst.currentState === message.targetState);
|
|
83
|
+
}
|
|
84
|
+
// Apply property filters if specified
|
|
85
|
+
if (message.filters && message.filters.length > 0) {
|
|
86
|
+
instances = instances.filter(inst => this.matchesFilters(inst, message.filters));
|
|
87
|
+
}
|
|
88
|
+
// Send event to each matching instance
|
|
89
|
+
for (const instance of instances) {
|
|
90
|
+
try {
|
|
91
|
+
await runtime.sendEvent(instance.id, message.event);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
this.emit('broadcast_error', {
|
|
95
|
+
componentName: component.name,
|
|
96
|
+
instanceId: instance.id,
|
|
97
|
+
error: error instanceof Error ? error.message : String(error),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
this.emit('message_error', {
|
|
104
|
+
componentName: component.name,
|
|
105
|
+
message,
|
|
106
|
+
error: error instanceof Error ? error.message : String(error),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
});
|
|
41
110
|
// Forward runtime events
|
|
42
111
|
this.forwardRuntimeEvents(component.name, runtime);
|
|
43
112
|
this.emit('component_registered', {
|
|
@@ -144,18 +213,74 @@ class ComponentRegistry extends events_1.EventEmitter {
|
|
|
144
213
|
/**
|
|
145
214
|
* Broadcast event to instances in a specific component
|
|
146
215
|
*
|
|
216
|
+
* Uses the configured message broker (in-memory or distributed)
|
|
217
|
+
*
|
|
147
218
|
* @param componentName Target component name
|
|
148
219
|
* @param machineName Target machine name
|
|
149
|
-
* @param currentState Current state filter
|
|
150
220
|
* @param event Event to broadcast
|
|
221
|
+
* @param sourceComponent Source component name (for tracing)
|
|
222
|
+
* @param filters Optional property filters to target specific instances
|
|
223
|
+
* @param currentState Optional state filter. Use '*' or omit to broadcast to all states
|
|
151
224
|
* @returns Number of instances processed
|
|
152
225
|
*/
|
|
153
|
-
async broadcastToComponent(componentName, machineName,
|
|
154
|
-
|
|
155
|
-
if (
|
|
156
|
-
|
|
226
|
+
async broadcastToComponent(componentName, machineName, event, sourceComponent, filters, currentState) {
|
|
227
|
+
// Check if target component exists (only for in-memory broker)
|
|
228
|
+
if (this.broker instanceof message_broker_1.InMemoryMessageBroker) {
|
|
229
|
+
const runtime = this.runtimes.get(componentName);
|
|
230
|
+
if (!runtime) {
|
|
231
|
+
throw new Error(`Component ${componentName} not found`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Publish message via broker (works for both in-memory and distributed)
|
|
235
|
+
const message = {
|
|
236
|
+
sourceComponent: sourceComponent || 'unknown',
|
|
237
|
+
targetComponent: componentName,
|
|
238
|
+
targetMachine: machineName,
|
|
239
|
+
targetState: currentState || '*',
|
|
240
|
+
event,
|
|
241
|
+
filters, // Include filters for distributed mode
|
|
242
|
+
};
|
|
243
|
+
const channel = `xcomponent:${componentName}`;
|
|
244
|
+
// For in-memory broker, we can directly process instances and return the count
|
|
245
|
+
// For distributed broker, we publish to Redis and can't know the count
|
|
246
|
+
if (this.broker instanceof message_broker_1.InMemoryMessageBroker) {
|
|
247
|
+
const runtime = this.runtimes.get(componentName);
|
|
248
|
+
// Get instances of the target machine
|
|
249
|
+
let instances;
|
|
250
|
+
if (!currentState || currentState === '*') {
|
|
251
|
+
// Broadcast to all instances of this machine (any state)
|
|
252
|
+
instances = runtime.getAllInstances().filter(inst => inst.machineName === machineName);
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
// Filter by specific state
|
|
256
|
+
instances = runtime.getAllInstances().filter(inst => inst.machineName === machineName && inst.currentState === currentState);
|
|
257
|
+
}
|
|
258
|
+
// Apply property filters if specified
|
|
259
|
+
if (filters && filters.length > 0) {
|
|
260
|
+
instances = instances.filter(inst => this.matchesFilters(inst, filters));
|
|
261
|
+
}
|
|
262
|
+
// Send event to each matching instance
|
|
263
|
+
let count = 0;
|
|
264
|
+
for (const instance of instances) {
|
|
265
|
+
try {
|
|
266
|
+
await runtime.sendEvent(instance.id, event);
|
|
267
|
+
count++;
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
this.emit('broadcast_error', {
|
|
271
|
+
componentName,
|
|
272
|
+
instanceId: instance.id,
|
|
273
|
+
error: error instanceof Error ? error.message : String(error),
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return count;
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
// Distributed mode: publish to broker (the handler will process it)
|
|
281
|
+
await this.broker.publish(channel, message);
|
|
282
|
+
return 0; // Count not available in distributed mode
|
|
157
283
|
}
|
|
158
|
-
return await runtime.broadcastEvent(machineName, currentState, event);
|
|
159
284
|
}
|
|
160
285
|
/**
|
|
161
286
|
* Broadcast event to all components
|
|
@@ -171,7 +296,7 @@ class ComponentRegistry extends events_1.EventEmitter {
|
|
|
171
296
|
let total = 0;
|
|
172
297
|
for (const [componentName, runtime] of this.runtimes) {
|
|
173
298
|
try {
|
|
174
|
-
const count = await runtime.broadcastEvent(machineName,
|
|
299
|
+
const count = await runtime.broadcastEvent(machineName, event, currentState);
|
|
175
300
|
total += count;
|
|
176
301
|
}
|
|
177
302
|
catch (error) {
|
|
@@ -338,6 +463,54 @@ class ComponentRegistry extends events_1.EventEmitter {
|
|
|
338
463
|
}
|
|
339
464
|
return [];
|
|
340
465
|
}
|
|
466
|
+
/**
|
|
467
|
+
* Check if an instance matches all property filters
|
|
468
|
+
*
|
|
469
|
+
* @param instance FSM instance to check
|
|
470
|
+
* @param filters Property filters to apply
|
|
471
|
+
* @returns true if instance matches ALL filters (AND logic)
|
|
472
|
+
*/
|
|
473
|
+
matchesFilters(instance, filters) {
|
|
474
|
+
for (const filter of filters) {
|
|
475
|
+
const value = this.getNestedProperty(instance.context, filter.property);
|
|
476
|
+
const operator = filter.operator || '===';
|
|
477
|
+
let matches = false;
|
|
478
|
+
switch (operator) {
|
|
479
|
+
case '===':
|
|
480
|
+
matches = value === filter.value;
|
|
481
|
+
break;
|
|
482
|
+
case '!==':
|
|
483
|
+
matches = value !== filter.value;
|
|
484
|
+
break;
|
|
485
|
+
case '>':
|
|
486
|
+
matches = value > filter.value;
|
|
487
|
+
break;
|
|
488
|
+
case '<':
|
|
489
|
+
matches = value < filter.value;
|
|
490
|
+
break;
|
|
491
|
+
case '>=':
|
|
492
|
+
matches = value >= filter.value;
|
|
493
|
+
break;
|
|
494
|
+
case '<=':
|
|
495
|
+
matches = value <= filter.value;
|
|
496
|
+
break;
|
|
497
|
+
}
|
|
498
|
+
if (!matches) {
|
|
499
|
+
return false; // AND logic: all filters must match
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
return true;
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Get nested property value from object using dot notation
|
|
506
|
+
*
|
|
507
|
+
* @param obj Object to get property from
|
|
508
|
+
* @param path Property path (e.g., "customer.id", "amount")
|
|
509
|
+
* @returns Property value or undefined
|
|
510
|
+
*/
|
|
511
|
+
getNestedProperty(obj, path) {
|
|
512
|
+
return path.split('.').reduce((current, prop) => current?.[prop], obj);
|
|
513
|
+
}
|
|
341
514
|
/**
|
|
342
515
|
* Forward runtime events to registry
|
|
343
516
|
*/
|
|
@@ -364,7 +537,17 @@ class ComponentRegistry extends events_1.EventEmitter {
|
|
|
364
537
|
/**
|
|
365
538
|
* Dispose all components and cleanup
|
|
366
539
|
*/
|
|
367
|
-
dispose() {
|
|
540
|
+
async dispose() {
|
|
541
|
+
// Unsubscribe from all component messages
|
|
542
|
+
for (const componentName of this.components.keys()) {
|
|
543
|
+
try {
|
|
544
|
+
this.broker.unsubscribe(componentName);
|
|
545
|
+
}
|
|
546
|
+
catch (error) {
|
|
547
|
+
console.error(`Error unsubscribing component ${componentName}:`, error);
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
// Dispose all runtimes
|
|
368
551
|
for (const [componentName, runtime] of this.runtimes) {
|
|
369
552
|
try {
|
|
370
553
|
runtime.dispose();
|
|
@@ -373,6 +556,8 @@ class ComponentRegistry extends events_1.EventEmitter {
|
|
|
373
556
|
console.error(`Error disposing component ${componentName}:`, error);
|
|
374
557
|
}
|
|
375
558
|
}
|
|
559
|
+
// Disconnect broker
|
|
560
|
+
await this.broker.disconnect();
|
|
376
561
|
this.runtimes.clear();
|
|
377
562
|
this.components.clear();
|
|
378
563
|
this.removeAllListeners();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-registry.js","sourceRoot":"","sources":["../src/component-registry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,mCAAsC;AAYtC;;GAEG;AACH,MAAa,iBAAkB,SAAQ,qBAAY;IACzC,QAAQ,CAA0B;IAClC,UAAU,CAAyB;IAE3C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,SAAoB,EAAE,OAAmB;QACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,aAAa,SAAS,CAAC,IAAI,wBAAwB,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE/C,yBAAyB;QACzB,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,aAAa,EAAE,SAAS,CAAC,IAAI;YAC7B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC,MAAM;SAC7C,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,aAAqB;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,aAAa,aAAa,YAAY,CAAC,CAAC;QAC1D,CAAC;QAED,kBAAkB;QAClB,OAAO,CAAC,OAAO,EAAE,CAAC;QAElB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,aAAqB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,aAAqB;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,aAAqB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,aAAqB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO;YACP,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC,MAAM;YAC5C,aAAa,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,MAAM;SAChD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,iBAAiB,EAAE;aAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,IAAI,EAAyB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,oBAAoB,CACxB,aAAqB,EACrB,UAAkB,EAClB,KAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,aAAa,aAAa,YAAY,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,oBAAoB,CACxB,aAAqB,EACrB,WAAmB,EACnB,YAAoB,EACpB,KAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,aAAa,aAAa,YAAY,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,MAAM,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,cAAc,CAClB,WAAmB,EACnB,YAAoB,EACpB,KAAe;QAEf,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC7E,KAAK,IAAI,KAAK,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBAC3B,aAAa;oBACb,WAAW;oBACX,YAAY;oBACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,yBAAyB,CACvB,aAAqB,EACrB,WAAmB,EACnB,cAAmC;QAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,aAAa,aAAa,YAAY,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,UAAkB;QAC7B,KAAK,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,eAAe;QACb,MAAM,MAAM,GAA4D,EAAE,CAAC;QAE3E,KAAK,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5C,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,QAAQ;QAMN,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE9C,OAAO;YACL,cAAc,EAAE,UAAU,CAAC,MAAM;YACjC,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YACvE,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;YACrE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,aAAa;gBAC1B,QAAQ,EAAE,CAAC,CAAC,YAAY;aACzB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,0BAA0B,CAAC,OAAe;QAC9C,MAAM,SAAS,GAAuC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4C,CAAC;QAErE,yCAAyC;QACzC,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBACrD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACrB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC9B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;gBACnD,SAAS;YACX,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,GAAuC,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE;YAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO;YAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnB,kCAAkC;YAClC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACpC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4C,CAAC;QAErE,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBACrD,iEAAiE;gBACjE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;gBACnD,SAAS;YACX,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IACrF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACzC,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBACjD,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,aAAqB,EAAE,OAAmB;QACrE,oDAAoD;QACpD,MAAM,eAAe,GAAG;YACtB,cAAc;YACd,kBAAkB;YAClB,mBAAmB;YACnB,gBAAgB;YAChB,cAAc;YACd,mBAAmB;YACnB,eAAe;SAChB,CAAC;QAEF,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAClC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAS,EAAE,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACnB,GAAG,IAAI;oBACP,aAAa;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,OAAO;QACL,KAAK,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,aAAa,GAAG,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;CACF;AAvaD,8CAuaC"}
|
|
1
|
+
{"version":3,"file":"component-registry.js","sourceRoot":"","sources":["../src/component-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External Broker API
|
|
3
|
+
*
|
|
4
|
+
* Enables external systems to interact with xcomponent-ai via message broker
|
|
5
|
+
* WITHOUT needing HTTP API access. This is useful for:
|
|
6
|
+
* - Microservices communicating via message bus
|
|
7
|
+
* - Event-driven architectures
|
|
8
|
+
* - Language-agnostic integrations (Python, Go, Java can use Redis/RabbitMQ clients)
|
|
9
|
+
* - Real-time subscriptions to FSM events
|
|
10
|
+
*
|
|
11
|
+
* Channels:
|
|
12
|
+
* - `xcomponent:external:commands` - Send events to FSM instances from external systems
|
|
13
|
+
* - `xcomponent:events:state_change` - Subscribe to state transitions
|
|
14
|
+
* - `xcomponent:events:instance_created` - Subscribe to instance creations
|
|
15
|
+
* - `xcomponent:events:instance_disposed` - Subscribe to instance disposals
|
|
16
|
+
*/
|
|
17
|
+
import { MessageBroker, PropertyFilter } from './message-broker';
|
|
18
|
+
import { ComponentRegistry } from './component-registry';
|
|
19
|
+
import { FSMEvent } from './types';
|
|
20
|
+
export type { PropertyFilter };
|
|
21
|
+
/**
|
|
22
|
+
* External command to send event to FSM instance
|
|
23
|
+
*/
|
|
24
|
+
export interface ExternalCommand {
|
|
25
|
+
/** Component name */
|
|
26
|
+
componentName: string;
|
|
27
|
+
/** Instance ID to target */
|
|
28
|
+
instanceId: string;
|
|
29
|
+
/** Event to send */
|
|
30
|
+
event: FSMEvent;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* External broadcast command (sends to instances in a state)
|
|
34
|
+
*
|
|
35
|
+
* Without filters: broadcasts to ALL instances in the state
|
|
36
|
+
* With filters: only instances matching ALL filters receive the event
|
|
37
|
+
*
|
|
38
|
+
* Example (broadcast to specific customer):
|
|
39
|
+
* ```json
|
|
40
|
+
* {
|
|
41
|
+
* "componentName": "OrderComponent",
|
|
42
|
+
* "machineName": "Order",
|
|
43
|
+
* "currentState": "Pending",
|
|
44
|
+
* "filters": [
|
|
45
|
+
* {"property": "customerId", "operator": "===", "value": "CUST-001"}
|
|
46
|
+
* ],
|
|
47
|
+
* "event": {"type": "TIMEOUT"}
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
* This broadcasts ONLY to Orders with customerId === "CUST-001"
|
|
51
|
+
*
|
|
52
|
+
* Multiple filters example (AND logic):
|
|
53
|
+
* ```json
|
|
54
|
+
* {
|
|
55
|
+
* "filters": [
|
|
56
|
+
* {"property": "customerId", "value": "CUST-001"},
|
|
57
|
+
* {"property": "amount", "operator": ">", "value": 1000}
|
|
58
|
+
* ]
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
* Broadcasts to Orders with customerId === "CUST-001" AND amount > 1000
|
|
62
|
+
*/
|
|
63
|
+
export interface ExternalBroadcastCommand {
|
|
64
|
+
/** Component name */
|
|
65
|
+
componentName: string;
|
|
66
|
+
/** Machine name */
|
|
67
|
+
machineName: string;
|
|
68
|
+
/** Current state filter */
|
|
69
|
+
currentState: string;
|
|
70
|
+
/** Event to broadcast */
|
|
71
|
+
event: FSMEvent;
|
|
72
|
+
/**
|
|
73
|
+
* Optional property filters to target specific instances
|
|
74
|
+
* If omitted, broadcasts to ALL instances in the state
|
|
75
|
+
* If specified, only instances matching ALL filters receive the event (AND logic)
|
|
76
|
+
*
|
|
77
|
+
* Can target a single instance if filters are specific enough
|
|
78
|
+
*/
|
|
79
|
+
filters?: PropertyFilter[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Published FSM event for external subscribers
|
|
83
|
+
*/
|
|
84
|
+
export interface PublishedFSMEvent {
|
|
85
|
+
/** Event type (state_change, instance_created, etc.) */
|
|
86
|
+
type: string;
|
|
87
|
+
/** Component name */
|
|
88
|
+
componentName: string;
|
|
89
|
+
/** Event data */
|
|
90
|
+
data: any;
|
|
91
|
+
/** Timestamp */
|
|
92
|
+
timestamp: number;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* External Broker API Configuration
|
|
96
|
+
*/
|
|
97
|
+
export interface ExternalBrokerConfig {
|
|
98
|
+
/** Message broker to use */
|
|
99
|
+
broker: MessageBroker;
|
|
100
|
+
/** Component registry */
|
|
101
|
+
registry: ComponentRegistry;
|
|
102
|
+
/** Publish FSM events to broker (default: false) */
|
|
103
|
+
publishEvents?: boolean;
|
|
104
|
+
/** Handle external commands (default: true) */
|
|
105
|
+
handleCommands?: boolean;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* External Broker API
|
|
109
|
+
*
|
|
110
|
+
* Provides message broker-based API for external systems
|
|
111
|
+
*/
|
|
112
|
+
export declare class ExternalBrokerAPI {
|
|
113
|
+
private broker;
|
|
114
|
+
private registry;
|
|
115
|
+
private publishEvents;
|
|
116
|
+
private handleCommands;
|
|
117
|
+
constructor(config: ExternalBrokerConfig);
|
|
118
|
+
/**
|
|
119
|
+
* Initialize the external API
|
|
120
|
+
* - Subscribe to external commands
|
|
121
|
+
* - Forward FSM events to broker (if enabled)
|
|
122
|
+
*/
|
|
123
|
+
initialize(): Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Subscribe to external commands channel
|
|
126
|
+
* External systems can publish commands to control FSM instances
|
|
127
|
+
*/
|
|
128
|
+
private subscribeToExternalCommands;
|
|
129
|
+
/**
|
|
130
|
+
* Forward FSM events to message broker for external subscribers
|
|
131
|
+
*/
|
|
132
|
+
private forwardFSMEventsToBroker;
|
|
133
|
+
/**
|
|
134
|
+
* Publish an FSM event to the broker
|
|
135
|
+
*/
|
|
136
|
+
private publishEvent;
|
|
137
|
+
/**
|
|
138
|
+
* Cleanup
|
|
139
|
+
*/
|
|
140
|
+
dispose(): Promise<void>;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Helper: Publish external command to message broker
|
|
144
|
+
* (For use by external systems)
|
|
145
|
+
*
|
|
146
|
+
* Example (from Node.js):
|
|
147
|
+
* ```typescript
|
|
148
|
+
* import { createClient } from 'redis';
|
|
149
|
+
*
|
|
150
|
+
* const redis = createClient({ url: 'redis://localhost:6379' });
|
|
151
|
+
* await redis.connect();
|
|
152
|
+
*
|
|
153
|
+
* await publishExternalCommand(redis, {
|
|
154
|
+
* componentName: 'OrderComponent',
|
|
155
|
+
* instanceId: 'order-123',
|
|
156
|
+
* event: { type: 'VALIDATE', payload: {} }
|
|
157
|
+
* });
|
|
158
|
+
* ```
|
|
159
|
+
*
|
|
160
|
+
* Example (from Python):
|
|
161
|
+
* ```python
|
|
162
|
+
* import redis
|
|
163
|
+
* import json
|
|
164
|
+
*
|
|
165
|
+
* r = redis.Redis(host='localhost', port=6379)
|
|
166
|
+
* r.publish('xcomponent:external:commands', json.dumps({
|
|
167
|
+
* 'componentName': 'OrderComponent',
|
|
168
|
+
* 'instanceId': 'order-123',
|
|
169
|
+
* 'event': {'type': 'VALIDATE', 'payload': {}}
|
|
170
|
+
* }))
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export declare function publishExternalCommand(redisClient: any, command: ExternalCommand): Promise<void>;
|
|
174
|
+
/**
|
|
175
|
+
* Helper: Subscribe to FSM events from external systems
|
|
176
|
+
*
|
|
177
|
+
* Example (from Node.js):
|
|
178
|
+
* ```typescript
|
|
179
|
+
* import { createClient } from 'redis';
|
|
180
|
+
*
|
|
181
|
+
* const redis = createClient({ url: 'redis://localhost:6379' });
|
|
182
|
+
* await redis.connect();
|
|
183
|
+
*
|
|
184
|
+
* await subscribeToFSMEvents(redis, 'state_change', (event) => {
|
|
185
|
+
* console.log('State changed:', event);
|
|
186
|
+
* });
|
|
187
|
+
* ```
|
|
188
|
+
*
|
|
189
|
+
* Example (from Python):
|
|
190
|
+
* ```python
|
|
191
|
+
* import redis
|
|
192
|
+
* import json
|
|
193
|
+
*
|
|
194
|
+
* r = redis.Redis(host='localhost', port=6379)
|
|
195
|
+
* pubsub = r.pubsub()
|
|
196
|
+
* pubsub.subscribe('xcomponent:events:state_change')
|
|
197
|
+
*
|
|
198
|
+
* for message in pubsub.listen():
|
|
199
|
+
* if message['type'] == 'message':
|
|
200
|
+
* event = json.loads(message['data'])
|
|
201
|
+
* print('State changed:', event)
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
export declare function subscribeToFSMEvents(redisClient: any, eventType: string, handler: (event: PublishedFSMEvent) => void): Promise<void>;
|
|
205
|
+
//# sourceMappingURL=external-broker-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-broker-api.d.ts","sourceRoot":"","sources":["../src/external-broker-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,wBAAwB;IACvC,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,KAAK,EAAE,QAAQ,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4BAA4B;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,yBAAyB;IACzB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,cAAc,CAAU;gBAEpB,MAAM,EAAE,oBAAoB;IAOxC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;;OAGG;YACW,2BAA2B;IA+CzC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA2BhC;;OAEG;YACW,YAAY;IAkB1B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,GAAG,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAC1C,OAAO,CAAC,IAAI,CAAC,CAWf"}
|