mcard-js 2.1.25 → 2.1.26

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 (43) hide show
  1. package/dist/scripts/docker-startup.js +2 -2
  2. package/dist/scripts/docker-startup.js.map +1 -1
  3. package/dist/src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.d.ts +8 -0
  4. package/dist/src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.d.ts.map +1 -0
  5. package/dist/src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.js +81 -0
  6. package/dist/src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.js.map +1 -0
  7. package/dist/src/ptr/node/clm/builtins/static-server.d.ts +2 -2
  8. package/dist/src/ptr/node/clm/builtins/static-server.d.ts.map +1 -1
  9. package/dist/src/ptr/node/clm/builtins/static-server.js +81 -4
  10. package/dist/src/ptr/node/clm/builtins/static-server.js.map +1 -1
  11. package/dist/src/ptr/node/clm/builtins/websocket-server.d.ts +2 -3
  12. package/dist/src/ptr/node/clm/builtins/websocket-server.d.ts.map +1 -1
  13. package/dist/src/ptr/node/clm/builtins/websocket-server.js +71 -155
  14. package/dist/src/ptr/node/clm/builtins/websocket-server.js.map +1 -1
  15. package/dist/src/ptr/node/clm/index.d.ts +4 -4
  16. package/dist/src/ptr/node/clm/index.d.ts.map +1 -1
  17. package/dist/src/ptr/node/clm/index.js +4 -4
  18. package/dist/src/ptr/node/clm/index.js.map +1 -1
  19. package/dist/src/ptr/node/clm/operations/handle.d.ts +14 -0
  20. package/dist/src/ptr/node/clm/operations/handle.d.ts.map +1 -0
  21. package/dist/src/ptr/node/clm/operations/handle.js +177 -0
  22. package/dist/src/ptr/node/clm/operations/handle.js.map +1 -0
  23. package/dist/src/ptr/node/clm/operations/index.d.ts +28 -0
  24. package/dist/src/ptr/node/clm/operations/index.d.ts.map +1 -0
  25. package/dist/src/ptr/node/clm/operations/index.js +94 -0
  26. package/dist/src/ptr/node/clm/operations/index.js.map +1 -0
  27. package/dist/src/ptr/node/clm/operations/server-scripts/websocket-server-worker.d.ts +8 -0
  28. package/dist/src/ptr/node/clm/operations/server-scripts/websocket-server-worker.d.ts.map +1 -0
  29. package/dist/src/ptr/node/clm/operations/server-scripts/websocket-server-worker.js +81 -0
  30. package/dist/src/ptr/node/clm/operations/server-scripts/websocket-server-worker.js.map +1 -0
  31. package/dist/src/ptr/node/clm/operations/static-server.d.ts +35 -0
  32. package/dist/src/ptr/node/clm/operations/static-server.d.ts.map +1 -0
  33. package/dist/src/ptr/node/clm/operations/static-server.js +252 -0
  34. package/dist/src/ptr/node/clm/operations/static-server.js.map +1 -0
  35. package/dist/src/ptr/node/clm/operations/websocket-server.d.ts +35 -0
  36. package/dist/src/ptr/node/clm/operations/websocket-server.d.ts.map +1 -0
  37. package/dist/src/ptr/node/clm/operations/websocket-server.js +265 -0
  38. package/dist/src/ptr/node/clm/operations/websocket-server.js.map +1 -0
  39. package/dist/src/ptr/node/clm/runner.js +4 -4
  40. package/dist/src/ptr/node/clm/runner.js.map +1 -1
  41. package/dist/src/ptr/node/clm/utils.js +1 -1
  42. package/dist/src/ptr/node/clm/utils.js.map +1 -1
  43. package/package.json +4 -2
@@ -1,5 +1,5 @@
1
- import { executeStaticServer } from '../src/ptr/node/clm/builtins/static-server.js';
2
- import { executeWebSocketServer } from '../src/ptr/node/clm/builtins/websocket-server.js';
1
+ import { executeStaticServer } from '../src/ptr/node/clm/operations/static-server.js';
2
+ import { executeWebSocketServer } from '../src/ptr/node/clm/operations/websocket-server.js';
3
3
  async function main() {
4
4
  console.log("🚀 Starting MCard Polyglot Services...");
5
5
  // 1. Static Server
@@ -1 +1 @@
1
- {"version":3,"file":"docker-startup.js","sourceRoot":"","sources":["../../scripts/docker-startup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAG1F,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC;QAC3C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,aAAa;KAC1B,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEtB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,4BAA4B,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,2BAA2B,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,kDAAkD;IAClD,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC;QAC1C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;KAClB,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEtB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAE5D,qBAAqB;IACrB,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"docker-startup.js","sourceRoot":"","sources":["../../scripts/docker-startup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAG5F,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC;QAC3C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,aAAa;KAC1B,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEtB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,4BAA4B,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,2BAA2B,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,kDAAkD;IAClD,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC;QAC1C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;KAClB,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEtB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAE5D,qBAAqB;IACrB,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Standalone WebSocket Server Worker Script.
3
+ *
4
+ * This script is spawned by the WebSocket Server builtin to run the actual server process.
5
+ * It reads configuration from environment variables and uses the 'ws' library.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=websocket-server-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-server-worker.d.ts","sourceRoot":"","sources":["../../../../../../../src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Standalone WebSocket Server Worker Script.
3
+ *
4
+ * This script is spawned by the WebSocket Server builtin to run the actual server process.
5
+ * It reads configuration from environment variables and uses the 'ws' library.
6
+ */
7
+ import { WebSocketServer } from 'ws';
8
+ // Read configuration from environment variables
9
+ const PORT = parseInt(process.env.PORT || '8765', 10);
10
+ const HOST = process.env.HOST || 'localhost';
11
+ console.log(`Starting WebSocket Server on ${HOST}:${PORT}`);
12
+ try {
13
+ const wss = new WebSocketServer({ port: PORT, host: HOST });
14
+ wss.on('listening', () => {
15
+ console.log(`WebSocket CLM Execution Server running on ws://${HOST}:${PORT}/`);
16
+ });
17
+ wss.on('connection', (ws) => {
18
+ console.log('Client connected');
19
+ ws.on('message', (message) => {
20
+ try {
21
+ // Determine if message is Buffer or string
22
+ const msgStr = message.toString();
23
+ const data = JSON.parse(msgStr);
24
+ const msgId = data.messageId;
25
+ const type = data.type;
26
+ if (type === 'ping') {
27
+ ws.send(JSON.stringify({
28
+ messageId: msgId,
29
+ type: 'pong',
30
+ timestamp: data.timestamp
31
+ }));
32
+ }
33
+ else if (type === 'clm_execute') {
34
+ // Stub for CLM execution in pure JS Node server
35
+ // In a real scenario, this would import the mcard-js library dynamically
36
+ console.log('Received CLM execution request');
37
+ ws.send(JSON.stringify({
38
+ messageId: msgId,
39
+ success: true,
40
+ result: { status: "simulated_success", output: "Node.js CLM Runner (Stub)" },
41
+ executionTime: 0,
42
+ logs: ["Executed on Node.js WebSocket Server"]
43
+ }));
44
+ }
45
+ else {
46
+ // Echo
47
+ ws.send(JSON.stringify({
48
+ messageId: msgId,
49
+ type: 'echo',
50
+ original: msgStr
51
+ }));
52
+ }
53
+ }
54
+ catch (e) {
55
+ console.error('Error processing message:', e);
56
+ ws.send(JSON.stringify({ error: 'Invalid JSON or Internal Error: ' + e.toString() }));
57
+ }
58
+ });
59
+ });
60
+ wss.on('error', (e) => {
61
+ console.error('Server error:', e);
62
+ process.exit(1);
63
+ });
64
+ // Handle graceful shutdown
65
+ const cleanup = () => {
66
+ console.log('Stopping WebSocket server...');
67
+ wss.close(() => {
68
+ console.log('WebSocket server stopped.');
69
+ process.exit(0);
70
+ });
71
+ };
72
+ process.on('SIGTERM', cleanup);
73
+ process.on('SIGINT', cleanup);
74
+ }
75
+ catch (e) {
76
+ console.error('Failed to create server:', e);
77
+ process.exit(1);
78
+ }
79
+ // Keep process alive if server is close
80
+ setInterval(() => { }, 1000);
81
+ //# sourceMappingURL=websocket-server-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-server-worker.js","sourceRoot":"","sources":["../../../../../../../src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Static Server builtin for CLM execution.
3
3
  *
4
4
  * Provides deploy, status, and stop actions for HTTP static file servers.
5
- * Matches the Python implementation for cross-runtime consistency.
5
+ * Uses Node.js 'http' module.
6
6
  */
7
7
  /**
8
8
  * Configuration for static server builtin.
@@ -10,7 +10,7 @@
10
10
  export interface StaticServerConfig {
11
11
  action?: 'deploy' | 'status' | 'stop';
12
12
  root_dir?: string;
13
- port?: number;
13
+ port?: number | string;
14
14
  host?: string;
15
15
  }
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"static-server.d.ts","sourceRoot":"","sources":["../../../../../../src/ptr/node/clm/builtins/static-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AA2BD;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAwJ7B"}
1
+ {"version":3,"file":"static-server.d.ts","sourceRoot":"","sources":["../../../../../../src/ptr/node/clm/builtins/static-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAsCD;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA8N7B"}
@@ -2,11 +2,21 @@
2
2
  * Static Server builtin for CLM execution.
3
3
  *
4
4
  * Provides deploy, status, and stop actions for HTTP static file servers.
5
- * Matches the Python implementation for cross-runtime consistency.
5
+ * Uses Node.js 'http' module.
6
6
  */
7
7
  import { execSync, spawn } from 'child_process';
8
8
  import * as fs from 'fs';
9
9
  import * as path from 'path';
10
+ /**
11
+ * Resolve environment variables in config values like '${VAR}'.
12
+ */
13
+ function resolveConfigValue(val) {
14
+ if (typeof val === 'string' && val.startsWith('${') && val.endsWith('}')) {
15
+ const envVar = val.slice(2, -1);
16
+ return process.env[envVar] || val;
17
+ }
18
+ return val;
19
+ }
10
20
  /**
11
21
  * Check if a port is in use using lsof (handles both IPv4 and IPv6).
12
22
  */
@@ -37,7 +47,10 @@ function getPidOnPort(port) {
37
47
  */
38
48
  export async function executeStaticServer(config, context, chapterDir) {
39
49
  const action = context.action || config.action || 'status';
40
- const port = parseInt(String(context.port || config.port || 8080), 10);
50
+ // Default to HTTP_PORT from .env matching the project configuration
51
+ const defaultPort = parseInt(process.env.HTTP_PORT || '8080', 10);
52
+ const rawPort = context.port || config.port || defaultPort;
53
+ const port = parseInt(String(resolveConfigValue(rawPort)), 10);
41
54
  const host = context.host || config.host || 'localhost';
42
55
  let rootDir = context.root_dir || config.root_dir || '.';
43
56
  // Resolve root_dir - find project root by looking for package.json or .git
@@ -74,9 +87,73 @@ export async function executeStaticServer(config, context, chapterDir) {
74
87
  if (!fs.existsSync(rootDir) || !fs.statSync(rootDir).isDirectory()) {
75
88
  return { success: false, error: `Directory not found: ${rootDir}` };
76
89
  }
90
+ // Node.js HTTP static server script
91
+ const serverCode = `
92
+ const http = require('http');
93
+ const fs = require('fs');
94
+ const path = require('path');
95
+
96
+ const port = ${port};
97
+ const host = '${host}';
98
+ const rootDir = '${rootDir.replace(/\\/g, '\\\\')}';
99
+
100
+ const mimeTypes = {
101
+ '.html': 'text/html',
102
+ '.js': 'text/javascript',
103
+ '.css': 'text/css',
104
+ '.json': 'application/json',
105
+ '.png': 'image/png',
106
+ '.jpg': 'image/jpg',
107
+ '.gif': 'image/gif',
108
+ '.svg': 'image/svg+xml',
109
+ '.wav': 'audio/wav',
110
+ '.mp4': 'video/mp4',
111
+ '.woff': 'application/font-woff',
112
+ '.ttf': 'application/font-ttf',
113
+ '.eot': 'application/vnd.ms-fontobject',
114
+ '.otf': 'application/font-otf',
115
+ '.wasm': 'application/wasm'
116
+ };
117
+
118
+ const server = http.createServer((req, res) => {
119
+ let filePath = path.join(rootDir, req.url === '/' ? 'index.html' : req.url);
120
+
121
+ // Prevent directory traversal
122
+ if (!filePath.startsWith(rootDir)) {
123
+ res.writeHead(403);
124
+ res.end('Forbidden');
125
+ return;
126
+ }
127
+
128
+ const extname = String(path.extname(filePath)).toLowerCase();
129
+ const contentType = mimeTypes[extname] || 'application/octet-stream';
130
+
131
+ fs.readFile(filePath, (error, content) => {
132
+ if (error) {
133
+ if(error.code == 'ENOENT') {
134
+ res.writeHead(404);
135
+ res.end('404 Not Found');
136
+ } else {
137
+ res.writeHead(500);
138
+ res.end('Sorry, check with the site admin for error: '+error.code+' ..\\n');
139
+ }
140
+ } else {
141
+ res.writeHead(200, { 'Content-Type': contentType });
142
+ res.end(content, 'utf-8');
143
+ }
144
+ });
145
+ });
146
+
147
+ server.listen(port, host, () => {
148
+ console.log('Server running at http://' + host + ':' + port + '/');
149
+ });
150
+
151
+ // Keep process alive
152
+ setInterval(() => {}, 1000);
153
+ `;
77
154
  try {
78
- // Spawn Python HTTP server as detached background process
79
- const child = spawn('python3', ['-m', 'http.server', String(port), '--bind', host, '--directory', rootDir], {
155
+ // Spawn Node.js server as detached background process
156
+ const child = spawn(process.execPath, ['-e', serverCode], {
80
157
  detached: true,
81
158
  stdio: 'ignore'
82
159
  });
@@ -1 +1 @@
1
- {"version":3,"file":"static-server.js","sourceRoot":"","sources":["../../../../../../src/ptr/node/clm/builtins/static-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static-server.js","sourceRoot":"","sources":["../../../../../../src/ptr/node/clm/builtins/static-server.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,14 @@
2
2
  * WebSocket Server builtin for CLM execution.
3
3
  *
4
4
  * Provides deploy, status, and stop actions for WebSocket servers.
5
- * Uses Python's asyncio-based WebSocket server internally.
6
- * Matches the Python implementation for cross-runtime consistency.
5
+ * Uses Node.js 'ws' library.
7
6
  */
8
7
  /**
9
8
  * Configuration for WebSocket server builtin.
10
9
  */
11
10
  export interface WebSocketServerConfig {
12
11
  action?: 'deploy' | 'status' | 'stop';
13
- port?: number;
12
+ port?: number | string;
14
13
  host?: string;
15
14
  }
16
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-server.d.ts","sourceRoot":"","sources":["../../../../../../src/ptr/node/clm/builtins/websocket-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AA2BD;;GAEG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC,CAuUhC"}
1
+ {"version":3,"file":"websocket-server.d.ts","sourceRoot":"","sources":["../../../../../../src/ptr/node/clm/builtins/websocket-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAsCD;;GAEG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC,CAiPhC"}
@@ -2,12 +2,21 @@
2
2
  * WebSocket Server builtin for CLM execution.
3
3
  *
4
4
  * Provides deploy, status, and stop actions for WebSocket servers.
5
- * Uses Python's asyncio-based WebSocket server internally.
6
- * Matches the Python implementation for cross-runtime consistency.
5
+ * Uses Node.js 'ws' library.
7
6
  */
8
7
  import { execSync, spawn } from 'child_process';
9
8
  import * as fs from 'fs';
10
9
  import * as path from 'path';
10
+ /**
11
+ * Resolve environment variables in config values like '${VAR}'.
12
+ */
13
+ function resolveConfigValue(val) {
14
+ if (typeof val === 'string' && val.startsWith('${') && val.endsWith('}')) {
15
+ const envVar = val.slice(2, -1);
16
+ return process.env[envVar] || val;
17
+ }
18
+ return val;
19
+ }
11
20
  /**
12
21
  * Check if a port is in use using lsof (handles both IPv4 and IPv6).
13
22
  */
@@ -38,7 +47,10 @@ function getPidOnPort(port) {
38
47
  */
39
48
  export async function executeWebSocketServer(config, context, chapterDir) {
40
49
  const action = context.action || config.action || 'status';
41
- const port = parseInt(String(context.port || config.port || 8765), 10);
50
+ // Default to WS_PORT from .env matching the project configuration
51
+ const defaultPort = parseInt(process.env.WS_PORT || '8765', 10);
52
+ const rawPort = context.port || config.port || defaultPort;
53
+ const port = parseInt(String(resolveConfigValue(rawPort)), 10);
42
54
  const host = context.host || config.host || 'localhost';
43
55
  // Resolve project root
44
56
  let projectRoot = chapterDir;
@@ -66,161 +78,65 @@ export async function executeWebSocketServer(config, context, chapterDir) {
66
78
  status: 'already_running'
67
79
  };
68
80
  }
69
- // Python WebSocket server script with CLM execution support
70
- const wsServerCode = `
71
- import asyncio
72
- import json
73
- import sys
74
- import time
75
- import yaml
76
-
77
- try:
78
- import websockets
79
- except ImportError:
80
- print("websockets module not found")
81
- sys.exit(1)
82
-
83
- # Import PTR components for CLM execution
84
- try:
85
- from mcard.ptr.clm.loader import CLMChapterLoader
86
- except ImportError:
87
- print("Warning: mcard.ptr not available, CLM execution disabled")
88
- CLMChapterLoader = None
89
-
90
- connected_clients = set()
91
-
92
- async def execute_clm(clm_yaml, input_data):
93
- """Execute CLM code and return result"""
94
- if not CLMChapterLoader:
95
- return {"error": "CLM execution not available - mcard.ptr not installed"}
96
-
97
- import tempfile
98
- import os
99
-
100
- try:
101
- start_time = time.time()
102
-
103
- # Parse YAML to get metadata
104
- clm_data = yaml.safe_load(clm_yaml)
105
-
106
- # Write YAML to temporary file
107
- with tempfile.NamedTemporaryFile(mode='w', suffix='.yaml', delete=False) as f:
108
- f.write(clm_yaml)
109
- temp_path = f.name
110
-
111
- try:
112
- # Load chapter from YAML file
113
- chapter = CLMChapterLoader.load_from_yaml(temp_path)
114
-
115
- # Execute chapter's action directly with provided input
116
- result, state, logs = chapter.action.execute(input_data, {})
117
-
118
- execution_time = (time.time() - start_time) * 1000 # ms
119
-
120
- return {
121
- "success": True,
122
- "result": result,
123
- "executionTime": execution_time,
124
- "chapter": clm_data.get("chapter", {}).get("title", "Unknown"),
125
- "concept": clm_data.get("clm", {}).get("abstract", {}).get("concept", "Unknown"),
126
- "logs": logs
127
- }
128
- finally:
129
- # Clean up temp file
130
- if os.path.exists(temp_path):
131
- os.unlink(temp_path)
132
-
133
- except Exception as e:
134
- return {
135
- "success": False,
136
- "error": str(e),
137
- "executionTime": 0
138
- }
139
-
140
- async def handler(websocket):
141
- connected_clients.add(websocket)
142
- try:
143
- async for message in websocket:
144
- try:
145
- data = json.loads(message)
146
- msg_type = data.get("type")
147
- message_id = data.get("messageId")
148
-
149
- if msg_type == "clm_execute":
150
- # Execute CLM
151
- clm_code = data.get("clm", "")
152
- input_data = data.get("input", {})
153
-
154
- result = await execute_clm(clm_code, input_data)
155
-
156
- # Send response with same messageId
157
- response = {
158
- "messageId": message_id,
159
- **result
160
- }
161
- await websocket.send(json.dumps(response))
162
-
163
- elif msg_type == "ping":
164
- # Respond to ping
165
- await websocket.send(json.dumps({
166
- "messageId": message_id,
167
- "type": "pong",
168
- "timestamp": data.get("timestamp")
169
- }))
170
- else:
171
- # Echo unknown messages
172
- response = json.dumps({
173
- "messageId": message_id,
174
- "type": "echo",
175
- "original": message,
176
- "clients": len(connected_clients)
177
- })
178
- await websocket.send(response)
179
-
180
- except json.JSONDecodeError:
181
- await websocket.send(json.dumps({
182
- "error": "Invalid JSON"
183
- }))
184
- except Exception as e:
185
- await websocket.send(json.dumps({
186
- "error": str(e)
187
- }))
188
-
189
- except websockets.exceptions.ConnectionClosed:
190
- pass
191
- finally:
192
- connected_clients.discard(websocket)
193
-
194
- async def main():
195
- async with websockets.serve(handler, "${host}", ${port}):
196
- print("WebSocket CLM Execution Server running on ws://${host}:${port}/")
197
- print("Ready to handle CLM execution requests")
198
- await asyncio.Future()
199
-
200
- if __name__ == "__main__":
201
- try:
202
- asyncio.run(main())
203
- except KeyboardInterrupt:
204
- pass
205
- `;
206
81
  try {
207
- // Find Python executable
208
- let pythonExe = 'python3';
209
- try {
210
- execSync('python3 --version', { stdio: 'pipe' });
211
- }
212
- catch {
213
- pythonExe = 'python';
82
+ // Locate the worker script
83
+ // In development (src), it's in ./server-scripts/websocket-server-worker.ts
84
+ // In production (dist), it's in ./server-scripts/websocket-server-worker.js
85
+ // Current file is .../builtins/websocket-server.ts
86
+ const currentDir = path.dirname(new URL(import.meta.url).pathname);
87
+ // Construct path to worker script
88
+ // We look for .js first (production), then fallback (though .ts won't run directly without loader)
89
+ let workerScript = path.join(currentDir, 'server-scripts', 'websocket-server-worker.js');
90
+ // Verify if exists, otherwise try checking source location if running via tsx/ts-node (dev mode)
91
+ if (!fs.existsSync(workerScript)) {
92
+ // Try .ts for dev mode
93
+ const workerScriptTs = path.join(currentDir, 'server-scripts', 'websocket-server-worker.ts');
94
+ if (fs.existsSync(workerScriptTs)) {
95
+ workerScript = workerScriptTs;
96
+ }
97
+ else {
98
+ return { success: false, error: `Worker script not found: ${workerScript}` };
99
+ }
214
100
  }
215
101
  // Create log file for WebSocket server output
216
102
  const logFile = path.join(projectRoot, `.websocket_server_${port}.log`);
217
103
  // Open log file with file descriptor for stdio
218
104
  const logFd = fs.openSync(logFile, 'a');
219
- // Spawn Python WebSocket server as detached background process
220
- const child = spawn(pythonExe, ['-c', wsServerCode], {
221
- detached: true,
222
- stdio: ['ignore', logFd, logFd]
223
- });
105
+ // Spawn Node.js WebSocket server as detached background process
106
+ // Passing environment variables for configuration
107
+ const env = { ...process.env, PORT: String(port), HOST: host };
108
+ // If running a .ts file (dev mode with tsx), we might need to use the loader
109
+ // But easiest way for now is to rely on compilation.
110
+ // If checking fails, we assume standard node execution on the resolved path.
111
+ // For tsx support (dev), we'd need to spawn with tsx if the extension is .ts
112
+ const isTs = workerScript.endsWith('.ts');
113
+ const execArgv = isTs && process.execArgv.includes('--loader') ? process.execArgv : [];
114
+ // Better: use process.execPath and let it handle it, or use 'tsx' if available?
115
+ // "spawn(process.execPath...)" runs 'node'. 'node file.ts' fails.
116
+ // We should rely on the build step having run, OR use tsx if we are in dev.
117
+ let child;
118
+ if (isTs) {
119
+ // Dev mode: assume tsx is available or we are in a ts-node env
120
+ // We'll try to use 'npx tsx' or similar if we really had to, but the requirement is "native implementation".
121
+ // Since we are compiling, we should target the .js file.
122
+ // However, the `demo:clm` command uses `tsx`.
123
+ // If we run `tsx examples/run-clm.ts`, we are in dev mode.
124
+ // We should assume proper environment.
125
+ // For robustness, let's try to detect if we should use tsx
126
+ child = spawn('npx', ['tsx', workerScript], {
127
+ detached: true,
128
+ stdio: ['ignore', logFd, logFd],
129
+ env
130
+ });
131
+ }
132
+ else {
133
+ // Production mode: node running .js
134
+ child = spawn(process.execPath, [workerScript], {
135
+ detached: true,
136
+ stdio: ['ignore', logFd, logFd],
137
+ env
138
+ });
139
+ }
224
140
  // Log any errors from the child process
225
141
  child.on('error', (err) => {
226
142
  console.error(`[WebSocket Server] Process error: ${err}`);
@@ -238,14 +154,14 @@ if __name__ == "__main__":
238
154
  catch { }
239
155
  });
240
156
  child.unref();
241
- // Close file descriptor in parent process (child has its own copy)
157
+ // Close file descriptor in parent process
242
158
  try {
243
159
  fs.closeSync(logFd);
244
160
  }
245
161
  catch { }
246
162
  // Save PID
247
163
  fs.writeFileSync(pidFile, String(child.pid));
248
- // Wait for server to start (increased timeout for reliability)
164
+ // Wait for server to start
249
165
  await new Promise(resolve => setTimeout(resolve, 3000));
250
166
  if (isPortInUse(port)) {
251
167
  console.log(`[WebSocket Server] Successfully started on port ${port}`);
@@ -270,7 +186,7 @@ if __name__ == "__main__":
270
186
  success: false,
271
187
  error: "Server started but not responding. Check log file for details.",
272
188
  logFile,
273
- details: errorDetails.slice(-500) // Last 500 chars
189
+ details: errorDetails.slice(-500)
274
190
  };
275
191
  }
276
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../../../../../src/ptr/node/clm/builtins/websocket-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../../../../../src/ptr/node/clm/builtins/websocket-server.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,10 @@
17
17
  */
18
18
  export type { CLMSpec, RuntimeConfig, CLMExample, ExecutionResult, RuntimeResult, MultiRuntimeResult, VerificationResult, RunExamplesSummary, ExampleRunResult, ExecutionReport, SummaryReport, CLMBannerLines, } from './types.js';
19
19
  export { resultsEqual, asObject, buildBaseContext, buildExecutionResult, isRecursiveCLM, isMultiRuntime, } from './utils.js';
20
- export { isNetworkBuiltin, isLoaderBuiltin, isHandleBuiltin, getHandleBuiltinType, isStaticServerBuiltin, isWebSocketServerBuiltin, } from './builtins/index.js';
21
- export { executeHandleVersion, executeHandlePrune, } from './builtins/handle.js';
22
- export { executeStaticServer, type StaticServerConfig, type StaticServerResult, } from './builtins/static-server.js';
23
- export { executeWebSocketServer, type WebSocketServerConfig, type WebSocketServerResult, } from './builtins/websocket-server.js';
20
+ export { isNetworkBuiltin, isLoaderBuiltin, isHandleBuiltin, getHandleBuiltinType, isStaticServerBuiltin, isWebSocketServerBuiltin, } from './operations/index.js';
21
+ export { executeHandleVersion, executeHandlePrune, } from './operations/handle.js';
22
+ export { executeStaticServer, type StaticServerConfig, type StaticServerResult, } from './operations/static-server.js';
23
+ export { executeWebSocketServer, type WebSocketServerConfig, type WebSocketServerResult, } from './operations/websocket-server.js';
24
24
  export { CLMLoader } from './loader.js';
25
25
  export { CLMRunner } from './runner.js';
26
26
  export { executeMultiRuntime } from './multiruntime.js';