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.
Files changed (49) hide show
  1. package/CONTRIBUTING.md +195 -0
  2. package/LICENSE +45 -0
  3. package/PERSISTENCE.md +774 -0
  4. package/README.md +594 -0
  5. package/dist/agents.d.ts +81 -0
  6. package/dist/agents.d.ts.map +1 -0
  7. package/dist/agents.js +405 -0
  8. package/dist/agents.js.map +1 -0
  9. package/dist/api.d.ts +36 -0
  10. package/dist/api.d.ts.map +1 -0
  11. package/dist/api.js +404 -0
  12. package/dist/api.js.map +1 -0
  13. package/dist/cli.d.ts +7 -0
  14. package/dist/cli.d.ts.map +1 -0
  15. package/dist/cli.js +437 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/component-registry.d.ts +190 -0
  18. package/dist/component-registry.d.ts.map +1 -0
  19. package/dist/component-registry.js +382 -0
  20. package/dist/component-registry.js.map +1 -0
  21. package/dist/fsm-runtime.d.ts +263 -0
  22. package/dist/fsm-runtime.d.ts.map +1 -0
  23. package/dist/fsm-runtime.js +1122 -0
  24. package/dist/fsm-runtime.js.map +1 -0
  25. package/dist/index.d.ts +23 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +56 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/monitoring.d.ts +68 -0
  30. package/dist/monitoring.d.ts.map +1 -0
  31. package/dist/monitoring.js +176 -0
  32. package/dist/monitoring.js.map +1 -0
  33. package/dist/persistence.d.ts +100 -0
  34. package/dist/persistence.d.ts.map +1 -0
  35. package/dist/persistence.js +270 -0
  36. package/dist/persistence.js.map +1 -0
  37. package/dist/timer-wheel.d.ts +85 -0
  38. package/dist/timer-wheel.d.ts.map +1 -0
  39. package/dist/timer-wheel.js +181 -0
  40. package/dist/timer-wheel.js.map +1 -0
  41. package/dist/types.d.ts +404 -0
  42. package/dist/types.d.ts.map +1 -0
  43. package/dist/types.js +40 -0
  44. package/dist/types.js.map +1 -0
  45. package/dist/websockets.d.ts +32 -0
  46. package/dist/websockets.d.ts.map +1 -0
  47. package/dist/websockets.js +117 -0
  48. package/dist/websockets.js.map +1 -0
  49. 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"}