xcomponent-ai 0.1.1
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/CONTRIBUTING.md +195 -0
- package/LICENSE +45 -0
- package/PERSISTENCE.md +774 -0
- package/README.md +594 -0
- package/dist/agents.d.ts +81 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +405 -0
- package/dist/agents.js.map +1 -0
- package/dist/api.d.ts +36 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +404 -0
- package/dist/api.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +437 -0
- package/dist/cli.js.map +1 -0
- package/dist/component-registry.d.ts +190 -0
- package/dist/component-registry.d.ts.map +1 -0
- package/dist/component-registry.js +382 -0
- package/dist/component-registry.js.map +1 -0
- package/dist/fsm-runtime.d.ts +263 -0
- package/dist/fsm-runtime.d.ts.map +1 -0
- package/dist/fsm-runtime.js +1122 -0
- package/dist/fsm-runtime.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/monitoring.d.ts +68 -0
- package/dist/monitoring.d.ts.map +1 -0
- package/dist/monitoring.js +176 -0
- package/dist/monitoring.js.map +1 -0
- package/dist/persistence.d.ts +100 -0
- package/dist/persistence.d.ts.map +1 -0
- package/dist/persistence.js +270 -0
- package/dist/persistence.js.map +1 -0
- package/dist/timer-wheel.d.ts +85 -0
- package/dist/timer-wheel.d.ts.map +1 -0
- package/dist/timer-wheel.js +181 -0
- package/dist/timer-wheel.js.map +1 -0
- package/dist/types.d.ts +404 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +40 -0
- package/dist/types.js.map +1 -0
- package/dist/websockets.d.ts +32 -0
- package/dist/websockets.d.ts.map +1 -0
- package/dist/websockets.js +117 -0
- package/dist/websockets.js.map +1 -0
- package/package.json +103 -0
package/dist/agents.js
ADDED
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agentic AI Layer with LangChain
|
|
4
|
+
* Supervisor LLM orchestrating specialized agents
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.SupervisorAgent = exports.MonitoringAgent = exports.UIAgent = exports.FSMAgent = void 0;
|
|
41
|
+
const openai_1 = require("@langchain/openai");
|
|
42
|
+
const fsm_runtime_1 = require("./fsm-runtime");
|
|
43
|
+
const monitoring_1 = require("./monitoring");
|
|
44
|
+
const yaml = __importStar(require("yaml"));
|
|
45
|
+
/**
|
|
46
|
+
* FSM Agent - handles FSM creation, updates, and simulation
|
|
47
|
+
*/
|
|
48
|
+
class FSMAgent {
|
|
49
|
+
llm;
|
|
50
|
+
constructor(apiKey) {
|
|
51
|
+
this.llm = new openai_1.ChatOpenAI({
|
|
52
|
+
modelName: 'gpt-4o',
|
|
53
|
+
temperature: 0.2,
|
|
54
|
+
apiKey: apiKey || process.env.OPENAI_API_KEY,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Create FSM from natural language description
|
|
59
|
+
*/
|
|
60
|
+
async createFSM(description) {
|
|
61
|
+
try {
|
|
62
|
+
const prompt = `You are an expert in creating finite state machines for fintech workflows.
|
|
63
|
+
Create a complete FSM component in YAML format based on this description: "${description}"
|
|
64
|
+
|
|
65
|
+
Requirements:
|
|
66
|
+
- Follow XComponent conventions: entry state (initial), regular states, final state, error state
|
|
67
|
+
- Include appropriate guards for compliance (e.g., amount limits, KYC checks, RGPD)
|
|
68
|
+
- Add timeout transitions where appropriate
|
|
69
|
+
- Include metadata for compliance tracking
|
|
70
|
+
- Use inter-machine transitions if multiple workflows are involved
|
|
71
|
+
|
|
72
|
+
Return ONLY the YAML content, no explanations.`;
|
|
73
|
+
const response = await this.llm.invoke(prompt);
|
|
74
|
+
const yamlContent = response.content.toString();
|
|
75
|
+
// Parse to validate
|
|
76
|
+
const component = yaml.parse(yamlContent);
|
|
77
|
+
// Detect missing compliance elements
|
|
78
|
+
const suggestions = this.detectMissingCompliance(component, description);
|
|
79
|
+
return {
|
|
80
|
+
success: true,
|
|
81
|
+
data: {
|
|
82
|
+
yaml: yamlContent,
|
|
83
|
+
component,
|
|
84
|
+
},
|
|
85
|
+
suggestions,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
return {
|
|
90
|
+
success: false,
|
|
91
|
+
error: error.message,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Update existing FSM
|
|
97
|
+
*/
|
|
98
|
+
async updateFSM(currentYaml, changes) {
|
|
99
|
+
try {
|
|
100
|
+
const prompt = `You are an expert in updating finite state machines.
|
|
101
|
+
Current FSM:
|
|
102
|
+
\`\`\`yaml
|
|
103
|
+
${currentYaml}
|
|
104
|
+
\`\`\`
|
|
105
|
+
|
|
106
|
+
Apply these changes: "${changes}"
|
|
107
|
+
|
|
108
|
+
Return ONLY the updated YAML content, no explanations.`;
|
|
109
|
+
const response = await this.llm.invoke(prompt);
|
|
110
|
+
const yamlContent = response.content.toString();
|
|
111
|
+
// Parse to validate
|
|
112
|
+
const component = yaml.parse(yamlContent);
|
|
113
|
+
return {
|
|
114
|
+
success: true,
|
|
115
|
+
data: {
|
|
116
|
+
yaml: yamlContent,
|
|
117
|
+
component,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
return {
|
|
123
|
+
success: false,
|
|
124
|
+
error: error.message,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Simulate FSM path
|
|
130
|
+
*/
|
|
131
|
+
async simulatePath(component, machineName, eventDescriptions) {
|
|
132
|
+
try {
|
|
133
|
+
// Convert descriptions to events using LLM
|
|
134
|
+
const prompt = `Convert these event descriptions into JSON event objects:
|
|
135
|
+
${eventDescriptions.map((d, i) => `${i + 1}. ${d}`).join('\n')}
|
|
136
|
+
|
|
137
|
+
For a state machine with these transitions:
|
|
138
|
+
${JSON.stringify(component.stateMachines.find(m => m.name === machineName)?.transitions || [])}
|
|
139
|
+
|
|
140
|
+
Return a JSON array of events with type and payload fields.`;
|
|
141
|
+
const response = await this.llm.invoke(prompt);
|
|
142
|
+
const eventsJson = response.content.toString();
|
|
143
|
+
const events = JSON.parse(eventsJson);
|
|
144
|
+
// Simulate
|
|
145
|
+
const runtime = new fsm_runtime_1.FSMRuntime(component);
|
|
146
|
+
const result = runtime.simulatePath(machineName, events);
|
|
147
|
+
return {
|
|
148
|
+
success: result.success,
|
|
149
|
+
data: result,
|
|
150
|
+
error: result.error,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
return {
|
|
155
|
+
success: false,
|
|
156
|
+
error: error.message,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Detect missing compliance elements
|
|
162
|
+
*/
|
|
163
|
+
detectMissingCompliance(component, description) {
|
|
164
|
+
const suggestions = [];
|
|
165
|
+
const descLower = description.toLowerCase();
|
|
166
|
+
// Check for AML/KYC
|
|
167
|
+
if ((descLower.includes('payment') || descLower.includes('trading') || descLower.includes('kyc')) &&
|
|
168
|
+
!JSON.stringify(component).toLowerCase().includes('aml') &&
|
|
169
|
+
!JSON.stringify(component).toLowerCase().includes('kyc')) {
|
|
170
|
+
suggestions.push('Consider adding AML/KYC compliance checks as guards');
|
|
171
|
+
}
|
|
172
|
+
// Check for RGPD/GDPR
|
|
173
|
+
if (descLower.includes('user') || descLower.includes('customer')) {
|
|
174
|
+
if (!JSON.stringify(component).toLowerCase().includes('rgpd') &&
|
|
175
|
+
!JSON.stringify(component).toLowerCase().includes('gdpr')) {
|
|
176
|
+
suggestions.push('Consider adding RGPD/GDPR compliance guards for user data');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Check for error states
|
|
180
|
+
component.stateMachines.forEach(machine => {
|
|
181
|
+
const hasErrorState = machine.states.some(s => s.type === 'error');
|
|
182
|
+
if (!hasErrorState) {
|
|
183
|
+
suggestions.push(`Machine "${machine.name}" missing explicit error state`);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
// Check for timeouts on critical operations
|
|
187
|
+
if (descLower.includes('payment') || descLower.includes('transaction')) {
|
|
188
|
+
component.stateMachines.forEach(machine => {
|
|
189
|
+
const hasTimeouts = machine.transitions.some(t => t.type === 'timeout');
|
|
190
|
+
if (!hasTimeouts) {
|
|
191
|
+
suggestions.push(`Machine "${machine.name}" should have timeout transitions for payment operations`);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return suggestions;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
exports.FSMAgent = FSMAgent;
|
|
199
|
+
/**
|
|
200
|
+
* UI Agent - generates code wrappers
|
|
201
|
+
*/
|
|
202
|
+
class UIAgent {
|
|
203
|
+
llm;
|
|
204
|
+
constructor(apiKey) {
|
|
205
|
+
this.llm = new openai_1.ChatOpenAI({
|
|
206
|
+
modelName: 'gpt-4o',
|
|
207
|
+
temperature: 0.3,
|
|
208
|
+
apiKey: apiKey || process.env.OPENAI_API_KEY,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Generate Express API routes for FSM
|
|
213
|
+
*/
|
|
214
|
+
async generateAPIRoutes(component) {
|
|
215
|
+
try {
|
|
216
|
+
const prompt = `Generate Express.js TypeScript code for API routes that trigger events on this FSM component:
|
|
217
|
+
|
|
218
|
+
${JSON.stringify(component, null, 2)}
|
|
219
|
+
|
|
220
|
+
Generate:
|
|
221
|
+
1. POST /api/:machine/instance - Create instance
|
|
222
|
+
2. POST /api/:machine/:instanceId/event - Send event
|
|
223
|
+
3. GET /api/:machine/:instanceId - Get instance state
|
|
224
|
+
|
|
225
|
+
Return only the TypeScript code, no explanations.`;
|
|
226
|
+
const response = await this.llm.invoke(prompt);
|
|
227
|
+
const code = response.content.toString();
|
|
228
|
+
return {
|
|
229
|
+
success: true,
|
|
230
|
+
data: { code, type: 'express-routes' },
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
return {
|
|
235
|
+
success: false,
|
|
236
|
+
error: error.message,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Generate React UI stub
|
|
242
|
+
*/
|
|
243
|
+
async generateReactUI(component) {
|
|
244
|
+
try {
|
|
245
|
+
const prompt = `Generate a React TypeScript component stub for interacting with this FSM:
|
|
246
|
+
|
|
247
|
+
${JSON.stringify(component, null, 2)}
|
|
248
|
+
|
|
249
|
+
Include:
|
|
250
|
+
- State display
|
|
251
|
+
- Event trigger buttons
|
|
252
|
+
- Instance list
|
|
253
|
+
|
|
254
|
+
Return only the React component code, no explanations.`;
|
|
255
|
+
const response = await this.llm.invoke(prompt);
|
|
256
|
+
const code = response.content.toString();
|
|
257
|
+
return {
|
|
258
|
+
success: true,
|
|
259
|
+
data: { code, type: 'react-component' },
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
return {
|
|
264
|
+
success: false,
|
|
265
|
+
error: error.message,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
exports.UIAgent = UIAgent;
|
|
271
|
+
/**
|
|
272
|
+
* Monitoring Agent - analyzes logs and provides insights
|
|
273
|
+
*/
|
|
274
|
+
class MonitoringAgent {
|
|
275
|
+
llm;
|
|
276
|
+
constructor(apiKey) {
|
|
277
|
+
this.llm = new openai_1.ChatOpenAI({
|
|
278
|
+
modelName: 'gpt-4o',
|
|
279
|
+
temperature: 0.1,
|
|
280
|
+
apiKey: apiKey || process.env.OPENAI_API_KEY,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Analyze logs with natural language insights
|
|
285
|
+
*/
|
|
286
|
+
async analyzeLogs(componentName) {
|
|
287
|
+
try {
|
|
288
|
+
const summary = monitoring_1.monitoringService.generateSummary(componentName);
|
|
289
|
+
const insights = monitoring_1.monitoringService.analyzeLogs(componentName);
|
|
290
|
+
const prompt = `Analyze these FSM execution metrics and provide actionable insights for a fintech workflow:
|
|
291
|
+
|
|
292
|
+
${summary}
|
|
293
|
+
|
|
294
|
+
Provide:
|
|
295
|
+
1. Key issues and risks
|
|
296
|
+
2. Performance optimization suggestions
|
|
297
|
+
3. Compliance concerns if any
|
|
298
|
+
4. Recommended FSM changes
|
|
299
|
+
|
|
300
|
+
Be specific and actionable.`;
|
|
301
|
+
const response = await this.llm.invoke(prompt);
|
|
302
|
+
const analysis = response.content.toString();
|
|
303
|
+
return {
|
|
304
|
+
success: true,
|
|
305
|
+
data: {
|
|
306
|
+
summary,
|
|
307
|
+
insights,
|
|
308
|
+
llmAnalysis: analysis,
|
|
309
|
+
},
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
return {
|
|
314
|
+
success: false,
|
|
315
|
+
error: error.message,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
exports.MonitoringAgent = MonitoringAgent;
|
|
321
|
+
/**
|
|
322
|
+
* Supervisor Agent - orchestrates other agents
|
|
323
|
+
*/
|
|
324
|
+
class SupervisorAgent {
|
|
325
|
+
fsmAgent;
|
|
326
|
+
uiAgent;
|
|
327
|
+
monitoringAgent;
|
|
328
|
+
llm;
|
|
329
|
+
constructor(apiKey) {
|
|
330
|
+
this.fsmAgent = new FSMAgent(apiKey);
|
|
331
|
+
this.uiAgent = new UIAgent(apiKey);
|
|
332
|
+
this.monitoringAgent = new MonitoringAgent(apiKey);
|
|
333
|
+
this.llm = new openai_1.ChatOpenAI({
|
|
334
|
+
modelName: 'gpt-4o',
|
|
335
|
+
temperature: 0.2,
|
|
336
|
+
apiKey: apiKey || process.env.OPENAI_API_KEY,
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Process user request
|
|
341
|
+
*/
|
|
342
|
+
async processRequest(request) {
|
|
343
|
+
try {
|
|
344
|
+
// Determine which agent(s) to use
|
|
345
|
+
const prompt = `Analyze this user request and determine which agent(s) to use:
|
|
346
|
+
"${request}"
|
|
347
|
+
|
|
348
|
+
Available agents:
|
|
349
|
+
- fsm: Create or update state machines
|
|
350
|
+
- ui: Generate UI/API code
|
|
351
|
+
- monitoring: Analyze logs and performance
|
|
352
|
+
|
|
353
|
+
Return a JSON object: { "agents": ["agent1", "agent2"], "action": "description" }`;
|
|
354
|
+
const response = await this.llm.invoke(prompt);
|
|
355
|
+
const plan = JSON.parse(response.content.toString());
|
|
356
|
+
const results = [];
|
|
357
|
+
// Execute agent actions
|
|
358
|
+
for (const agent of plan.agents) {
|
|
359
|
+
if (agent === 'fsm') {
|
|
360
|
+
results.push(await this.fsmAgent.createFSM(request));
|
|
361
|
+
}
|
|
362
|
+
else if (agent === 'ui') {
|
|
363
|
+
// Would need component context
|
|
364
|
+
results.push({ success: true, data: 'UI generation requires component context' });
|
|
365
|
+
}
|
|
366
|
+
else if (agent === 'monitoring') {
|
|
367
|
+
results.push(await this.monitoringAgent.analyzeLogs('default'));
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
return {
|
|
371
|
+
success: true,
|
|
372
|
+
data: {
|
|
373
|
+
plan,
|
|
374
|
+
results,
|
|
375
|
+
},
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
catch (error) {
|
|
379
|
+
return {
|
|
380
|
+
success: false,
|
|
381
|
+
error: error.message,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Get FSM agent
|
|
387
|
+
*/
|
|
388
|
+
getFSMAgent() {
|
|
389
|
+
return this.fsmAgent;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Get UI agent
|
|
393
|
+
*/
|
|
394
|
+
getUIAgent() {
|
|
395
|
+
return this.uiAgent;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Get monitoring agent
|
|
399
|
+
*/
|
|
400
|
+
getMonitoringAgent() {
|
|
401
|
+
return this.monitoringAgent;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
exports.SupervisorAgent = SupervisorAgent;
|
|
405
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Express API Server
|
|
3
|
+
* REST API for FSM management and monitoring
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* API Server
|
|
7
|
+
*/
|
|
8
|
+
export declare class APIServer {
|
|
9
|
+
private app;
|
|
10
|
+
private httpServer;
|
|
11
|
+
private wsManager;
|
|
12
|
+
private registry;
|
|
13
|
+
private supervisor;
|
|
14
|
+
constructor();
|
|
15
|
+
/**
|
|
16
|
+
* Setup Express middleware
|
|
17
|
+
*/
|
|
18
|
+
private setupMiddleware;
|
|
19
|
+
/**
|
|
20
|
+
* Setup API routes
|
|
21
|
+
*/
|
|
22
|
+
private setupRoutes;
|
|
23
|
+
/**
|
|
24
|
+
* Setup monitoring for runtime
|
|
25
|
+
*/
|
|
26
|
+
private setupMonitoring;
|
|
27
|
+
/**
|
|
28
|
+
* Get dashboard HTML
|
|
29
|
+
*/
|
|
30
|
+
private getDashboardHTML;
|
|
31
|
+
/**
|
|
32
|
+
* Start server
|
|
33
|
+
*/
|
|
34
|
+
start(port?: number): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,UAAU,CAAkB;;IAapC;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;IACH,OAAO,CAAC,WAAW;IA4QnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,KAAK,CAAC,IAAI,GAAE,MAAa,GAAG,IAAI;CAOjC"}
|