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/api.js ADDED
@@ -0,0 +1,404 @@
1
+ "use strict";
2
+ /**
3
+ * Express API Server
4
+ * REST API for FSM management and monitoring
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.APIServer = void 0;
44
+ const express_1 = __importDefault(require("express"));
45
+ const http_1 = require("http");
46
+ const fsm_runtime_1 = require("./fsm-runtime");
47
+ const component_registry_1 = require("./component-registry");
48
+ const websockets_1 = require("./websockets");
49
+ const monitoring_1 = require("./monitoring");
50
+ const agents_1 = require("./agents");
51
+ const yaml = __importStar(require("yaml"));
52
+ const fs = __importStar(require("fs/promises"));
53
+ const fsSync = __importStar(require("fs"));
54
+ const path = __importStar(require("path"));
55
+ /**
56
+ * API Server
57
+ */
58
+ class APIServer {
59
+ app;
60
+ httpServer;
61
+ wsManager;
62
+ registry;
63
+ supervisor;
64
+ constructor() {
65
+ this.app = (0, express_1.default)();
66
+ this.httpServer = (0, http_1.createServer)(this.app);
67
+ this.wsManager = new websockets_1.WebSocketManager(this.httpServer);
68
+ this.registry = new component_registry_1.ComponentRegistry();
69
+ this.supervisor = new agents_1.SupervisorAgent();
70
+ this.setupMiddleware();
71
+ this.setupRoutes();
72
+ }
73
+ /**
74
+ * Setup Express middleware
75
+ */
76
+ setupMiddleware() {
77
+ this.app.use(express_1.default.json());
78
+ this.app.use(express_1.default.static('public'));
79
+ // CORS
80
+ this.app.use((_req, res, next) => {
81
+ res.header('Access-Control-Allow-Origin', '*');
82
+ res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
83
+ res.header('Access-Control-Allow-Headers', 'Content-Type');
84
+ next();
85
+ });
86
+ // Request logging
87
+ this.app.use((req, _res, next) => {
88
+ console.log(`${req.method} ${req.path}`);
89
+ next();
90
+ });
91
+ }
92
+ /**
93
+ * Setup API routes
94
+ */
95
+ setupRoutes() {
96
+ // Health check
97
+ this.app.get('/health', (_req, res) => {
98
+ res.json({ status: 'ok', timestamp: Date.now() });
99
+ });
100
+ // Load component from YAML file
101
+ this.app.post('/api/component/load', async (req, res) => {
102
+ try {
103
+ const { filePath } = req.body;
104
+ const content = await fs.readFile(filePath, 'utf-8');
105
+ const component = yaml.parse(content);
106
+ const runtime = new fsm_runtime_1.FSMRuntime(component);
107
+ runtime.setRegistry(this.registry);
108
+ this.registry.registerComponent(component, runtime);
109
+ this.wsManager.registerRuntime(component.name, runtime);
110
+ // Setup monitoring
111
+ this.setupMonitoring(runtime, component.name);
112
+ res.json({
113
+ success: true,
114
+ data: {
115
+ componentName: component.name,
116
+ machineCount: component.stateMachines.length,
117
+ },
118
+ });
119
+ }
120
+ catch (error) {
121
+ res.status(500).json({ success: false, error: error.message });
122
+ }
123
+ });
124
+ // Create instance
125
+ this.app.post('/api/:component/:machine/instance', (req, res) => {
126
+ try {
127
+ const component = req.params.component;
128
+ const machine = req.params.machine;
129
+ const { context } = req.body;
130
+ const runtime = this.registry.getRuntime(component);
131
+ if (!runtime) {
132
+ return res.status(404).json({ success: false, error: 'Component not found' });
133
+ }
134
+ const instanceId = runtime.createInstance(machine, context || {});
135
+ return res.json({ success: true, data: { instanceId } });
136
+ }
137
+ catch (error) {
138
+ return res.status(500).json({ success: false, error: error.message });
139
+ }
140
+ });
141
+ // Send event to instance
142
+ this.app.post('/api/:component/instance/:instanceId/event', async (req, res) => {
143
+ try {
144
+ const component = req.params.component;
145
+ const instanceId = req.params.instanceId;
146
+ const event = req.body;
147
+ const runtime = this.registry.getRuntime(component);
148
+ if (!runtime) {
149
+ return res.status(404).json({ success: false, error: 'Component not found' });
150
+ }
151
+ await runtime.sendEvent(instanceId, event);
152
+ const instance = runtime.getInstance(instanceId);
153
+ return res.json({ success: true, data: { instance } });
154
+ }
155
+ catch (error) {
156
+ return res.status(500).json({ success: false, error: error.message });
157
+ }
158
+ });
159
+ // Get instance state
160
+ this.app.get('/api/:component/instance/:instanceId', (req, res) => {
161
+ try {
162
+ const component = req.params.component;
163
+ const instanceId = req.params.instanceId;
164
+ const runtime = this.registry.getRuntime(component);
165
+ if (!runtime) {
166
+ return res.status(404).json({ success: false, error: 'Component not found' });
167
+ }
168
+ const instance = runtime.getInstance(instanceId);
169
+ if (!instance) {
170
+ return res.status(404).json({ success: false, error: 'Instance not found' });
171
+ }
172
+ return res.json({ success: true, data: { instance } });
173
+ }
174
+ catch (error) {
175
+ return res.status(500).json({ success: false, error: error.message });
176
+ }
177
+ });
178
+ // Get all instances for component
179
+ this.app.get('/api/:component/instances', (req, res) => {
180
+ try {
181
+ const component = req.params.component;
182
+ const runtime = this.registry.getRuntime(component);
183
+ if (!runtime) {
184
+ return res.status(404).json({ success: false, error: 'Component not found' });
185
+ }
186
+ const instances = runtime.getAllInstances();
187
+ return res.json({ success: true, data: { instances, count: instances.length } });
188
+ }
189
+ catch (error) {
190
+ return res.status(500).json({ success: false, error: error.message });
191
+ }
192
+ });
193
+ // Monitoring endpoint
194
+ this.app.get('/api/monitor/:component', (req, res) => {
195
+ try {
196
+ const component = req.params.component;
197
+ const summary = monitoring_1.monitoringService.generateSummary(component);
198
+ const insights = monitoring_1.monitoringService.analyzeLogs(component);
199
+ return res.json({
200
+ success: true,
201
+ data: {
202
+ summary,
203
+ insights,
204
+ logs: monitoring_1.monitoringService.getAllLogs(),
205
+ },
206
+ });
207
+ }
208
+ catch (error) {
209
+ return res.status(500).json({ success: false, error: error.message });
210
+ }
211
+ });
212
+ // AI Agent endpoints
213
+ this.app.post('/api/ai/create-fsm', async (req, res) => {
214
+ try {
215
+ const { description } = req.body;
216
+ const result = await this.supervisor.getFSMAgent().createFSM(description);
217
+ return res.json(result);
218
+ }
219
+ catch (error) {
220
+ return res.status(500).json({ success: false, error: error.message });
221
+ }
222
+ });
223
+ this.app.post('/api/ai/analyze', async (req, res) => {
224
+ try {
225
+ const { componentName } = req.body;
226
+ const result = await this.supervisor.getMonitoringAgent().analyzeLogs(componentName);
227
+ return res.json(result);
228
+ }
229
+ catch (error) {
230
+ return res.status(500).json({ success: false, error: error.message });
231
+ }
232
+ });
233
+ // Get component definition (for FSM diagram generation)
234
+ this.app.get('/api/:component/definition', (req, res) => {
235
+ try {
236
+ const componentName = req.params.component;
237
+ const runtime = this.registry.getRuntime(componentName);
238
+ if (!runtime) {
239
+ return res.status(404).json({ success: false, error: 'Component not found' });
240
+ }
241
+ const component = runtime.getComponent();
242
+ return res.json({ success: true, data: { component } });
243
+ }
244
+ catch (error) {
245
+ return res.status(500).json({ success: false, error: error.message });
246
+ }
247
+ });
248
+ // Get available transitions for instance
249
+ this.app.get('/api/:component/instance/:instanceId/transitions', (req, res) => {
250
+ try {
251
+ const componentName = req.params.component;
252
+ const instanceId = req.params.instanceId;
253
+ const runtime = this.registry.getRuntime(componentName);
254
+ if (!runtime) {
255
+ return res.status(404).json({ success: false, error: 'Component not found' });
256
+ }
257
+ const instance = runtime.getInstance(instanceId);
258
+ if (!instance) {
259
+ return res.status(404).json({ success: false, error: 'Instance not found' });
260
+ }
261
+ const availableTransitions = runtime.getAvailableTransitions(instanceId);
262
+ return res.json({ success: true, data: { transitions: availableTransitions } });
263
+ }
264
+ catch (error) {
265
+ return res.status(500).json({ success: false, error: error.message });
266
+ }
267
+ });
268
+ // Get instance history (requires persistence)
269
+ this.app.get('/api/:component/instance/:instanceId/history', async (req, res) => {
270
+ try {
271
+ const componentName = req.params.component;
272
+ const instanceId = req.params.instanceId;
273
+ const runtime = this.registry.getRuntime(componentName);
274
+ if (!runtime) {
275
+ return res.status(404).json({ success: false, error: 'Component not found' });
276
+ }
277
+ const history = await runtime.getInstanceHistory(instanceId);
278
+ return res.json({ success: true, data: { history } });
279
+ }
280
+ catch (error) {
281
+ return res.status(500).json({ success: false, error: error.message });
282
+ }
283
+ });
284
+ // Trace event causality (single component)
285
+ this.app.get('/api/:component/causality/:eventId', async (req, res) => {
286
+ try {
287
+ const componentName = req.params.component;
288
+ const eventId = req.params.eventId;
289
+ const runtime = this.registry.getRuntime(componentName);
290
+ if (!runtime) {
291
+ return res.status(404).json({ success: false, error: 'Component not found' });
292
+ }
293
+ const causality = await runtime.traceEventCausality(eventId);
294
+ return res.json({ success: true, data: { causality } });
295
+ }
296
+ catch (error) {
297
+ return res.status(500).json({ success: false, error: error.message });
298
+ }
299
+ });
300
+ // Cross-component traceability: trace event across all components
301
+ this.app.get('/api/cross-component/causality/:eventId', async (req, res) => {
302
+ try {
303
+ const eventId = req.params.eventId;
304
+ const causality = await this.registry.traceEventAcrossComponents(eventId);
305
+ return res.json({ success: true, data: { causality, count: causality.length } });
306
+ }
307
+ catch (error) {
308
+ return res.status(500).json({ success: false, error: error.message });
309
+ }
310
+ });
311
+ // Cross-component traceability: get all events across all components
312
+ this.app.get('/api/cross-component/events', async (_req, res) => {
313
+ try {
314
+ const events = await this.registry.getAllPersistedEvents();
315
+ return res.json({ success: true, data: { events, count: events.length } });
316
+ }
317
+ catch (error) {
318
+ return res.status(500).json({ success: false, error: error.message });
319
+ }
320
+ });
321
+ // Cross-component traceability: get instance history across components
322
+ this.app.get('/api/cross-component/instance/:instanceId/history', async (req, res) => {
323
+ try {
324
+ const instanceId = req.params.instanceId;
325
+ const history = await this.registry.getInstanceHistory(instanceId);
326
+ return res.json({ success: true, data: { history, count: history.length } });
327
+ }
328
+ catch (error) {
329
+ return res.status(500).json({ success: false, error: error.message });
330
+ }
331
+ });
332
+ // Dashboard
333
+ this.app.get('/dashboard', (_req, res) => {
334
+ return res.send(this.getDashboardHTML());
335
+ });
336
+ }
337
+ /**
338
+ * Setup monitoring for runtime
339
+ */
340
+ setupMonitoring(runtime, _componentName) {
341
+ runtime.on('state_change', (data) => {
342
+ monitoring_1.monitoringService.logTransition({
343
+ instanceId: data.instanceId,
344
+ from: data.previousState,
345
+ to: data.newState,
346
+ event: data.event.type,
347
+ time: data.timestamp,
348
+ });
349
+ });
350
+ runtime.on('instance_error', (data) => {
351
+ monitoring_1.monitoringService.logError(data.instanceId, data.error);
352
+ });
353
+ }
354
+ /**
355
+ * Get dashboard HTML
356
+ */
357
+ getDashboardHTML() {
358
+ // Serve the enhanced dashboard from public/dashboard.html
359
+ const dashboardPath = path.join(__dirname, '../public/dashboard.html');
360
+ try {
361
+ return fsSync.readFileSync(dashboardPath, 'utf-8');
362
+ }
363
+ catch (error) {
364
+ // Fallback to basic dashboard if file not found
365
+ return `
366
+ <!DOCTYPE html>
367
+ <html>
368
+ <head>
369
+ <title>xcomponent-ai Dashboard</title>
370
+ <style>
371
+ body { font-family: sans-serif; padding: 2rem; background: #f5f5f5; }
372
+ .error { background: #fff; padding: 2rem; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
373
+ </style>
374
+ </head>
375
+ <body>
376
+ <div class="error">
377
+ <h1>Dashboard Error</h1>
378
+ <p>Could not load dashboard. Please ensure the public/dashboard.html file exists.</p>
379
+ <p>Error: ${error instanceof Error ? error.message : String(error)}</p>
380
+ </div>
381
+ </body>
382
+ </html>`;
383
+ }
384
+ }
385
+ /**
386
+ * Start server
387
+ */
388
+ start(port = 3000) {
389
+ this.httpServer.listen(port, () => {
390
+ console.log(`✓ xcomponent-ai API server running on http://localhost:${port}`);
391
+ console.log(`✓ Dashboard: http://localhost:${port}/dashboard`);
392
+ console.log(`✓ WebSocket endpoint: ws://localhost:${port}`);
393
+ });
394
+ }
395
+ }
396
+ exports.APIServer = APIServer;
397
+ /**
398
+ * Main entry point
399
+ */
400
+ if (require.main === module) {
401
+ const server = new APIServer();
402
+ server.start(3000);
403
+ }
404
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI for xcomponent-ai
4
+ * Command-line interface for FSM management and AI agent interactions
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG"}