@leverageaiapps/locus-dev 1.1.3

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 (58) hide show
  1. package/Dockerfile +29 -0
  2. package/LICENSE +21 -0
  3. package/README.md +153 -0
  4. package/dist/capture.d.ts +3 -0
  5. package/dist/capture.d.ts.map +1 -0
  6. package/dist/capture.js +134 -0
  7. package/dist/capture.js.map +1 -0
  8. package/dist/config.d.ts +7 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +84 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/context-extractor.d.ts +17 -0
  13. package/dist/context-extractor.d.ts.map +1 -0
  14. package/dist/context-extractor.js +118 -0
  15. package/dist/context-extractor.js.map +1 -0
  16. package/dist/debug-logger.d.ts +19 -0
  17. package/dist/debug-logger.d.ts.map +1 -0
  18. package/dist/debug-logger.js +48 -0
  19. package/dist/debug-logger.js.map +1 -0
  20. package/dist/exec.d.ts +20 -0
  21. package/dist/exec.d.ts.map +1 -0
  22. package/dist/exec.js +158 -0
  23. package/dist/exec.js.map +1 -0
  24. package/dist/index.d.ts +3 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +83 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/pty.d.ts +7 -0
  29. package/dist/pty.d.ts.map +1 -0
  30. package/dist/pty.js +27 -0
  31. package/dist/pty.js.map +1 -0
  32. package/dist/relay.d.ts +5 -0
  33. package/dist/relay.d.ts.map +1 -0
  34. package/dist/relay.js +131 -0
  35. package/dist/relay.js.map +1 -0
  36. package/dist/session.d.ts +6 -0
  37. package/dist/session.d.ts.map +1 -0
  38. package/dist/session.js +250 -0
  39. package/dist/session.js.map +1 -0
  40. package/dist/voice-recognition-modelscope.d.ts +50 -0
  41. package/dist/voice-recognition-modelscope.d.ts.map +1 -0
  42. package/dist/voice-recognition-modelscope.js +171 -0
  43. package/dist/voice-recognition-modelscope.js.map +1 -0
  44. package/dist/vortex-tunnel.d.ts +9 -0
  45. package/dist/vortex-tunnel.d.ts.map +1 -0
  46. package/dist/vortex-tunnel.js +589 -0
  47. package/dist/vortex-tunnel.js.map +1 -0
  48. package/dist/web-server.d.ts +6 -0
  49. package/dist/web-server.d.ts.map +1 -0
  50. package/dist/web-server.js +2096 -0
  51. package/dist/web-server.js.map +1 -0
  52. package/docs/CNAME +1 -0
  53. package/docs/index.html +492 -0
  54. package/docs/install.sh +329 -0
  55. package/install.sh +329 -0
  56. package/package.json +69 -0
  57. package/scripts/postinstall.js +66 -0
  58. package/scripts/verify-install.js +128 -0
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Debug Logger - Sends logs to Debug Dashboard
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logOut = exports.logIn = void 0;
7
+ exports.initDebugLogger = initDebugLogger;
8
+ exports.setDebugSession = setDebugSession;
9
+ exports.debugLog = debugLog;
10
+ let debugUrl = null;
11
+ let sessionId = null;
12
+ function initDebugLogger(url = 'http://localhost:4000', session) {
13
+ debugUrl = url;
14
+ sessionId = session || null;
15
+ console.log(`[Debug] Logger initialized: ${url}`);
16
+ }
17
+ function setDebugSession(session) {
18
+ sessionId = session;
19
+ }
20
+ function debugLog(entry) {
21
+ const fullEntry = {
22
+ source: entry.source || 'locus',
23
+ direction: entry.direction,
24
+ type: entry.type,
25
+ message: entry.message,
26
+ session: entry.session || sessionId || undefined,
27
+ data: entry.data
28
+ };
29
+ // Always log to console
30
+ const arrow = entry.direction === 'in' ? '←' : '→';
31
+ console.log(` [${fullEntry.source.toUpperCase()}] ${arrow} ${fullEntry.type}: ${fullEntry.message}`);
32
+ // Send to debug dashboard if configured
33
+ if (debugUrl) {
34
+ fetch(`${debugUrl}/log`, {
35
+ method: 'POST',
36
+ headers: { 'Content-Type': 'application/json' },
37
+ body: JSON.stringify(fullEntry)
38
+ }).catch(() => {
39
+ // Ignore errors - dashboard might not be running
40
+ });
41
+ }
42
+ }
43
+ // Convenience functions
44
+ const logIn = (type, message, data) => debugLog({ direction: 'in', type, message, data });
45
+ exports.logIn = logIn;
46
+ const logOut = (type, message, data) => debugLog({ direction: 'out', type, message, data });
47
+ exports.logOut = logOut;
48
+ //# sourceMappingURL=debug-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-logger.js","sourceRoot":"","sources":["../src/debug-logger.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH,0CAIC;AAED,0CAEC;AAWD,4BAwBC;AA9CD,IAAI,QAAQ,GAAkB,IAAI,CAAC;AACnC,IAAI,SAAS,GAAkB,IAAI,CAAC;AAEpC,SAAgB,eAAe,CAAC,MAAc,uBAAuB,EAAE,OAAgB;IACnF,QAAQ,GAAG,GAAG,CAAC;IACf,SAAS,GAAG,OAAO,IAAI,IAAI,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,eAAe,CAAC,OAAe;IAC3C,SAAS,GAAG,OAAO,CAAC;AACxB,CAAC;AAWD,SAAgB,QAAQ,CAAC,KAAqD;IAC1E,MAAM,SAAS,GAAa;QACxB,MAAM,EAAG,KAAK,CAAC,MAAc,IAAI,OAAO;QACxC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,SAAS,IAAI,SAAS;QAChD,IAAI,EAAE,KAAK,CAAC,IAAI;KACnB,CAAC;IAEF,wBAAwB;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtG,wCAAwC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACX,KAAK,CAAC,GAAG,QAAQ,MAAM,EAAE;YACrB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SAClC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACV,iDAAiD;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,wBAAwB;AACjB,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,IAAU,EAAE,EAAE,CAC/D,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAD1C,QAAA,KAAK,SACqC;AAEhD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,IAAU,EAAE,EAAE,CAChE,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAD3C,QAAA,MAAM,UACqC"}
package/dist/exec.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ import * as pty from 'node-pty';
2
+ export interface ExecOptions {
3
+ cols?: number;
4
+ rows?: number;
5
+ command?: string;
6
+ args?: string[];
7
+ cwd?: string;
8
+ }
9
+ export declare function getLocalSize(): {
10
+ cols: number;
11
+ rows: number;
12
+ };
13
+ export declare function spawnExec(options?: ExecOptions): pty.IPty;
14
+ export declare function writeToExec(data: string): void;
15
+ export declare function resizeExec(cols: number, rows: number): void;
16
+ export declare function killExec(): void;
17
+ export declare function onExecData(callback: (data: string) => void): void;
18
+ export declare function onExecExit(callback: (code: number) => void): void;
19
+ export declare function isExecRunning(): boolean;
20
+ //# sourceMappingURL=exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,wBAAgB,YAAY,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE7D;AAqBD,wBAAgB,SAAS,CAAC,OAAO,GAAE,WAAgB,GAAG,GAAG,CAAC,IAAI,CA4D7D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI9C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAM3D;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAU/B;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAEjE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAEjE;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
package/dist/exec.js ADDED
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getLocalSize = getLocalSize;
37
+ exports.spawnExec = spawnExec;
38
+ exports.writeToExec = writeToExec;
39
+ exports.resizeExec = resizeExec;
40
+ exports.killExec = killExec;
41
+ exports.onExecData = onExecData;
42
+ exports.onExecExit = onExecExit;
43
+ exports.isExecRunning = isExecRunning;
44
+ const pty = __importStar(require("node-pty"));
45
+ let ptyProcess = null;
46
+ let dataCallback = null;
47
+ let exitCallback = null;
48
+ // Track terminal size
49
+ let localCols = 80;
50
+ let localRows = 24;
51
+ // Get local terminal size
52
+ function getLocalSize() {
53
+ return { cols: localCols, rows: localRows };
54
+ }
55
+ /**
56
+ * Strip ANSI escape codes from output
57
+ */
58
+ function stripAnsi(str) {
59
+ // Remove all ANSI escape sequences
60
+ // This regex matches:
61
+ // - CSI sequences: ESC [ ... final_byte
62
+ // - OSC sequences: ESC ] ... ST
63
+ // - Simple escapes: ESC followed by single char
64
+ return str
65
+ .replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '') // CSI sequences (colors, cursor, etc.)
66
+ .replace(/\x1b\][^\x07]*\x07/g, '') // OSC sequences (title, etc.)
67
+ .replace(/\x1b\][^\x1b]*\x1b\\/g, '') // OSC with ST terminator
68
+ .replace(/\x1b[PX^_][^\x1b]*\x1b\\/g, '') // DCS, SOS, PM, APC sequences
69
+ .replace(/\x1b[@-Z\\-_]/g, '') // Fe sequences
70
+ .replace(/\x1b[ -/][0-9;]*[@-~]/g, '') // Other escape sequences
71
+ .replace(/[\x00-\x08\x0b\x0c\x0e-\x1f]/g, ''); // Control characters except \t, \n, \r
72
+ }
73
+ function spawnExec(options = {}) {
74
+ // Default to user's shell
75
+ const shell = process.env.SHELL || '/bin/bash';
76
+ const command = options.command || shell;
77
+ const args = options.args || [];
78
+ localCols = options.cols || process.stdout.columns || 80;
79
+ localRows = options.rows || process.stdout.rows || 24;
80
+ const cwd = options.cwd || process.cwd();
81
+ // Environment setup
82
+ const env = {
83
+ ...process.env,
84
+ PATH: process.env.PATH || '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin',
85
+ TERM: 'xterm-256color',
86
+ COLORTERM: 'truecolor',
87
+ };
88
+ // Spawn PTY process
89
+ ptyProcess = pty.spawn(command, args, {
90
+ name: 'xterm-256color',
91
+ cols: localCols,
92
+ rows: localRows,
93
+ cwd,
94
+ env,
95
+ });
96
+ // Handle PTY output - strip ANSI codes before sending
97
+ ptyProcess.onData((data) => {
98
+ // Write original to local terminal (with colors)
99
+ process.stdout.write(data);
100
+ // Send stripped version to callback (for remote clients)
101
+ if (dataCallback) {
102
+ const stripped = stripAnsi(data);
103
+ if (stripped) {
104
+ dataCallback(stripped);
105
+ }
106
+ }
107
+ });
108
+ // Handle PTY exit
109
+ ptyProcess.onExit(({ exitCode }) => {
110
+ if (exitCallback) {
111
+ exitCallback(exitCode);
112
+ }
113
+ ptyProcess = null;
114
+ });
115
+ // Forward local stdin to PTY
116
+ if (process.stdin.isTTY) {
117
+ process.stdin.setRawMode(true);
118
+ }
119
+ process.stdin.resume();
120
+ process.stdin.on('data', (data) => {
121
+ if (ptyProcess) {
122
+ ptyProcess.write(data.toString());
123
+ }
124
+ });
125
+ return ptyProcess;
126
+ }
127
+ function writeToExec(data) {
128
+ if (ptyProcess) {
129
+ ptyProcess.write(data);
130
+ }
131
+ }
132
+ function resizeExec(cols, rows) {
133
+ localCols = cols;
134
+ localRows = rows;
135
+ if (ptyProcess) {
136
+ ptyProcess.resize(cols, rows);
137
+ }
138
+ }
139
+ function killExec() {
140
+ if (ptyProcess) {
141
+ ptyProcess.kill();
142
+ ptyProcess = null;
143
+ }
144
+ // Restore terminal
145
+ if (process.stdin.isTTY) {
146
+ process.stdin.setRawMode(false);
147
+ }
148
+ }
149
+ function onExecData(callback) {
150
+ dataCallback = callback;
151
+ }
152
+ function onExecExit(callback) {
153
+ exitCallback = callback;
154
+ }
155
+ function isExecRunning() {
156
+ return ptyProcess !== null;
157
+ }
158
+ //# sourceMappingURL=exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const commander_1 = require("commander");
38
+ const session_1 = require("./session");
39
+ const config_1 = require("./config");
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ // Read version from package.json
43
+ const packageJsonPath = path.join(__dirname, '..', 'package.json');
44
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
45
+ const version = packageJson.version;
46
+ const program = new commander_1.Command();
47
+ program
48
+ .name('locus')
49
+ .description('Locus - Forward your terminal to your mobile device')
50
+ .version(version)
51
+ .argument('[command...]', 'Command to run (default: none, opens terminal only)')
52
+ .option('-n, --name <name>', 'Machine name to display', process.env.HOSTNAME || 'My Computer')
53
+ .option('--pin <pin>', 'Set a 6-digit PIN for web access security (default: no PIN, direct access)')
54
+ .option('--debug-asr', 'Enable verbose ASR (voice recognition) logging')
55
+ .option('-g, --gateway <url>', 'Vortex gateway URL (default: https://vortex.futuretech.social)')
56
+ .allowUnknownOption(true)
57
+ .action(async (command, options) => {
58
+ // PIN is optional - if not provided, no authentication required
59
+ await (0, session_1.startSession)(options.name, options.pin, command, {
60
+ debugAsr: options.debugAsr,
61
+ gatewayUrl: options.gateway
62
+ });
63
+ });
64
+ program
65
+ .command('config')
66
+ .description('Configure Locus')
67
+ .option('-s, --server <url>', 'Set server URL')
68
+ .option('--show', 'Show current configuration')
69
+ .action((options) => {
70
+ if (options.show) {
71
+ const config = (0, config_1.getConfig)();
72
+ console.log('Current configuration:');
73
+ console.log(` Server URL: ${config.serverUrl}`);
74
+ console.log(` Machine ID: ${config.machineId}`);
75
+ return;
76
+ }
77
+ if (options.server) {
78
+ (0, config_1.setConfig)({ serverUrl: options.server });
79
+ console.log(`Server URL set to: ${options.server}`);
80
+ }
81
+ });
82
+ program.parse();
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,uCAAyC;AACzC,qCAAgD;AAChD,uCAAyB;AACzB,2CAA6B;AAE7B,iCAAiC;AACjC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1E,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,cAAc,EAAE,qDAAqD,CAAC;KAC/E,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;KAC7F,MAAM,CAAC,aAAa,EAAE,4EAA4E,CAAC;KACnG,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC;KACvE,MAAM,CAAC,qBAAqB,EAAE,gEAAgE,CAAC;KAC/F,kBAAkB,CAAC,IAAI,CAAC;KACxB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAC/B,gEAAgE;IAChE,MAAM,IAAA,sBAAY,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE;QACnD,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,OAAO;KAC9B,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iBAAiB,CAAC;KAC9B,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KAC9C,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;KAC9C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAChB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,OAAO;IACX,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,IAAA,kBAAS,EAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/dist/pty.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export { spawnExec as spawnPTY, writeToExec as writeToPTY, killExec as killPTY, onExecData as onPTYData, onExecExit as onPTYExit, isExecRunning as isPTYRunning, ExecOptions as PTYOptions } from './exec';
2
+ export declare function getLocalSize(): {
3
+ cols: number;
4
+ rows: number;
5
+ };
6
+ export declare function resizePTY(cols: number, rows: number): void;
7
+ //# sourceMappingURL=pty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../src/pty.ts"],"names":[],"mappings":"AACA,OAAO,EACH,SAAS,IAAI,QAAQ,EACrB,WAAW,IAAI,UAAU,EACzB,QAAQ,IAAI,OAAO,EACnB,UAAU,IAAI,SAAS,EACvB,UAAU,IAAI,SAAS,EACvB,aAAa,IAAI,YAAY,EAC7B,WAAW,IAAI,UAAU,EAC5B,MAAM,QAAQ,CAAC;AAOhB,wBAAgB,YAAY,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE7D;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI1D"}
package/dist/pty.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPTYRunning = exports.onPTYExit = exports.onPTYData = exports.killPTY = exports.writeToPTY = exports.spawnPTY = void 0;
4
+ exports.getLocalSize = getLocalSize;
5
+ exports.resizePTY = resizePTY;
6
+ // Re-export exec functions for compatibility during transition
7
+ var exec_1 = require("./exec");
8
+ Object.defineProperty(exports, "spawnPTY", { enumerable: true, get: function () { return exec_1.spawnExec; } });
9
+ Object.defineProperty(exports, "writeToPTY", { enumerable: true, get: function () { return exec_1.writeToExec; } });
10
+ Object.defineProperty(exports, "killPTY", { enumerable: true, get: function () { return exec_1.killExec; } });
11
+ Object.defineProperty(exports, "onPTYData", { enumerable: true, get: function () { return exec_1.onExecData; } });
12
+ Object.defineProperty(exports, "onPTYExit", { enumerable: true, get: function () { return exec_1.onExecExit; } });
13
+ Object.defineProperty(exports, "isPTYRunning", { enumerable: true, get: function () { return exec_1.isExecRunning; } });
14
+ // Stub functions for terminal size (not needed in exec mode)
15
+ let localCols = 80;
16
+ let localRows = 24;
17
+ // Get local terminal size (stub for compatibility)
18
+ function getLocalSize() {
19
+ return { cols: localCols, rows: localRows };
20
+ }
21
+ // Resize PTY (stub for compatibility in exec mode)
22
+ function resizePTY(cols, rows) {
23
+ // No-op in exec mode, terminal size is not managed
24
+ localCols = cols;
25
+ localRows = rows;
26
+ }
27
+ //# sourceMappingURL=pty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../src/pty.ts"],"names":[],"mappings":";;;AAgBA,oCAEC;AAGD,8BAIC;AAzBD,+DAA+D;AAC/D,+BAQgB;AAPZ,gGAAA,SAAS,OAAY;AACrB,kGAAA,WAAW,OAAc;AACzB,+FAAA,QAAQ,OAAW;AACnB,iGAAA,UAAU,OAAa;AACvB,iGAAA,UAAU,OAAa;AACvB,oGAAA,aAAa,OAAgB;AAIjC,6DAA6D;AAC7D,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB,IAAI,SAAS,GAAG,EAAE,CAAC;AAEnB,mDAAmD;AACnD,SAAgB,YAAY;IACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAChD,CAAC;AAED,mDAAmD;AACnD,SAAgB,SAAS,CAAC,IAAY,EAAE,IAAY;IAChD,mDAAmD;IACnD,SAAS,GAAG,IAAI,CAAC;IACjB,SAAS,GAAG,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function startRelay(sessionId: string, serverUrl: string): void;
2
+ export declare function stopRelay(): void;
3
+ export declare function isRelayRunning(): boolean;
4
+ export declare function onLocalResize(): void;
5
+ //# sourceMappingURL=relay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAkCA,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA+ErE;AAED,wBAAgB,SAAS,IAAI,IAAI,CAiBhC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAGD,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
package/dist/relay.js ADDED
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.startRelay = startRelay;
7
+ exports.stopRelay = stopRelay;
8
+ exports.isRelayRunning = isRelayRunning;
9
+ exports.onLocalResize = onLocalResize;
10
+ const axios_1 = __importDefault(require("axios"));
11
+ const pty_1 = require("./pty");
12
+ let isRunning = false;
13
+ let pollInterval = null;
14
+ let outputBuffer = [];
15
+ let flushTimer = null;
16
+ const POLL_INTERVAL = 100; // Poll for input every 100ms
17
+ const FLUSH_INTERVAL = 50; // Flush output every 50ms
18
+ // Track web client size
19
+ let webCols = 0;
20
+ let webRows = 0;
21
+ // Calculate and apply minimum size
22
+ function applyMinSize() {
23
+ const local = (0, pty_1.getLocalSize)();
24
+ // If web client hasn't connected yet, use local size
25
+ if (webCols === 0 || webRows === 0) {
26
+ return; // Don't resize yet
27
+ }
28
+ // Use minimum of both dimensions (byobu-style)
29
+ const minCols = Math.min(local.cols, webCols);
30
+ const minRows = Math.min(local.rows, webRows);
31
+ // Only resize if we have valid dimensions
32
+ if (minCols > 0 && minRows > 0) {
33
+ (0, pty_1.resizePTY)(minCols, minRows);
34
+ }
35
+ }
36
+ function startRelay(sessionId, serverUrl) {
37
+ isRunning = true;
38
+ console.log(' [Relay] Starting HTTP relay...');
39
+ // Set up PTY data forwarding
40
+ (0, pty_1.onPTYData)((data) => {
41
+ outputBuffer.push(data);
42
+ });
43
+ // Handle PTY exit
44
+ (0, pty_1.onPTYExit)(async (code) => {
45
+ try {
46
+ await axios_1.default.post(`${serverUrl}/api/terminal?sessionId=${sessionId}`, {
47
+ type: 'exit',
48
+ code,
49
+ });
50
+ }
51
+ catch {
52
+ // Ignore errors on exit
53
+ }
54
+ });
55
+ // Start output flushing
56
+ flushTimer = setInterval(async () => {
57
+ if (outputBuffer.length === 0)
58
+ return;
59
+ const dataToSend = outputBuffer.join('');
60
+ outputBuffer = [];
61
+ try {
62
+ await axios_1.default.post(`${serverUrl}/api/terminal?sessionId=${sessionId}`, {
63
+ type: 'output',
64
+ data: dataToSend,
65
+ });
66
+ }
67
+ catch (error) {
68
+ if (process.env.DEBUG) {
69
+ console.error(' [Relay] Failed to send output:', error);
70
+ }
71
+ }
72
+ }, FLUSH_INTERVAL);
73
+ // Start polling for input and resize events
74
+ pollInterval = setInterval(async () => {
75
+ if (!isRunning)
76
+ return;
77
+ try {
78
+ const response = await axios_1.default.get(`${serverUrl}/api/terminal`, {
79
+ params: { sessionId, mode: 'input' },
80
+ timeout: 5000,
81
+ });
82
+ const { inputs, resize } = response.data;
83
+ // Handle resize from web client
84
+ if (resize && resize.cols && resize.rows) {
85
+ webCols = resize.cols;
86
+ webRows = resize.rows;
87
+ applyMinSize();
88
+ }
89
+ // Handle input from web client
90
+ if (inputs && Array.isArray(inputs)) {
91
+ for (const input of inputs) {
92
+ // Debug: log input
93
+ if (process.env.DEBUG) {
94
+ const hex = Array.from(Buffer.from(input)).map(b => b.toString(16).padStart(2, '0')).join(' ');
95
+ console.log(`[Debug] Sending to PTY: "${input.replace(/\r/g, '\\r').replace(/\n/g, '\\n')}" [${hex}]`);
96
+ }
97
+ (0, pty_1.writeToPTY)(input);
98
+ }
99
+ }
100
+ }
101
+ catch (error) {
102
+ if (process.env.DEBUG) {
103
+ console.error(' [Relay] Failed to poll input:', error);
104
+ }
105
+ }
106
+ }, POLL_INTERVAL);
107
+ console.log(' [Relay] ✓ HTTP relay started');
108
+ }
109
+ function stopRelay() {
110
+ isRunning = false;
111
+ if (pollInterval) {
112
+ clearInterval(pollInterval);
113
+ pollInterval = null;
114
+ }
115
+ if (flushTimer) {
116
+ clearInterval(flushTimer);
117
+ flushTimer = null;
118
+ }
119
+ outputBuffer = [];
120
+ webCols = 0;
121
+ webRows = 0;
122
+ console.log(' [Relay] Stopped');
123
+ }
124
+ function isRelayRunning() {
125
+ return isRunning;
126
+ }
127
+ // Called when local terminal resizes
128
+ function onLocalResize() {
129
+ applyMinSize();
130
+ }
131
+ //# sourceMappingURL=relay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface SessionOptions {
2
+ debugAsr?: boolean;
3
+ gatewayUrl?: string;
4
+ }
5
+ export declare function startSession(machineName: string, userPin?: string, command?: string[], options?: SessionOptions): Promise<void>;
6
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AA8GA,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiIzI"}