@leverageaiapps/locus 1.1.2 → 2.1.0

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.
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Debug Logger - Sends logs to Debug Dashboard
3
+ */
4
+ export declare function initDebugLogger(url?: string, session?: string): void;
5
+ export declare function setDebugSession(session: string): void;
6
+ export interface LogEntry {
7
+ source: 'locus' | 'vortex' | 'ios';
8
+ direction: 'in' | 'out';
9
+ type: string;
10
+ message: string;
11
+ session?: string;
12
+ data?: any;
13
+ }
14
+ export declare function debugLog(entry: Omit<LogEntry, 'source'> & {
15
+ source?: string;
16
+ }): void;
17
+ export declare const logIn: (type: string, message: string, data?: any) => void;
18
+ export declare const logOut: (type: string, message: string, data?: any) => void;
19
+ //# sourceMappingURL=debug-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-logger.d.ts","sourceRoot":"","sources":["../src/debug-logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAgC,EAAE,OAAO,CAAC,EAAE,MAAM,QAItF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,QAE9C;AAED,MAAM,WAAW,QAAQ;IACrB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,QAwB7E;AAGD,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,GAAG,SACT,CAAC;AAEvD,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,GAAG,SACT,CAAC"}
@@ -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"}
@@ -1 +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"}
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,CA+D7D;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 CHANGED
@@ -42,6 +42,7 @@ exports.onExecData = onExecData;
42
42
  exports.onExecExit = onExecExit;
43
43
  exports.isExecRunning = isExecRunning;
44
44
  const pty = __importStar(require("node-pty"));
45
+ const os = __importStar(require("os"));
45
46
  let ptyProcess = null;
46
47
  let dataCallback = null;
47
48
  let exitCallback = null;
@@ -71,9 +72,12 @@ function stripAnsi(str) {
71
72
  .replace(/[\x00-\x08\x0b\x0c\x0e-\x1f]/g, ''); // Control characters except \t, \n, \r
72
73
  }
73
74
  function spawnExec(options = {}) {
74
- // Default to user's shell
75
- const shell = process.env.SHELL || '/bin/bash';
76
- const command = options.command || shell;
75
+ // Default to user's shell (Windows uses ComSpec/cmd.exe, Unix uses SHELL)
76
+ const isWindows = os.platform() === 'win32';
77
+ const defaultShell = isWindows
78
+ ? process.env.ComSpec || 'cmd.exe'
79
+ : process.env.SHELL || '/bin/bash';
80
+ const command = options.command || defaultShell;
77
81
  const args = options.args || [];
78
82
  localCols = options.cols || process.stdout.columns || 80;
79
83
  localRows = options.rows || process.stdout.rows || 24;
package/dist/exec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAsIA,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"}
package/dist/session.js CHANGED
@@ -37,9 +37,30 @@ exports.startSession = startSession;
37
37
  const qrcode = __importStar(require("qrcode-terminal"));
38
38
  const net = __importStar(require("net"));
39
39
  const http = __importStar(require("http"));
40
+ const fs = __importStar(require("fs"));
40
41
  const exec_1 = require("./exec");
41
42
  const web_server_1 = require("./web-server");
42
43
  const vortex_tunnel_1 = require("./vortex-tunnel");
44
+ /**
45
+ * Detect the best available shell on the system.
46
+ * Prefers $SHELL if set and exists, then tries zsh, bash, sh in order.
47
+ */
48
+ function detectShell() {
49
+ // 1. Use $SHELL if set and the binary actually exists
50
+ const envShell = process.env.SHELL;
51
+ if (envShell && fs.existsSync(envShell)) {
52
+ return envShell;
53
+ }
54
+ // 2. Try common shells in preference order (zsh first for macOS compatibility)
55
+ const candidates = ['/bin/zsh', '/bin/bash', '/usr/bin/zsh', '/usr/bin/bash', '/bin/sh'];
56
+ for (const sh of candidates) {
57
+ if (fs.existsSync(sh)) {
58
+ return sh;
59
+ }
60
+ }
61
+ // 3. Last resort
62
+ return '/bin/sh';
63
+ }
43
64
  const MIN_PORT = 8000;
44
65
  const MAX_PORT = 65535;
45
66
  /**
@@ -87,7 +108,7 @@ function verifyServerStarted(port) {
87
108
  let attempts = 0;
88
109
  const checkServer = () => {
89
110
  attempts++;
90
- const req = http.get(`http://localhost:${port}/health`, (res) => {
111
+ const req = http.get(`http://127.0.0.1:${port}/health`, (res) => {
91
112
  // Server is responding, even if with 404 (health endpoint doesn't exist)
92
113
  // The important thing is that the server is reachable
93
114
  resolve();
@@ -208,7 +229,7 @@ async function startSession(machineName, userPin, command, options = {}) {
208
229
  }
209
230
  else {
210
231
  // No command provided, just start a shell
211
- const shell = process.env.SHELL || '/bin/zsh';
232
+ const shell = detectShell();
212
233
  commandToRun = shell;
213
234
  argsToRun = [];
214
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmHA,oCAiIC;AApPD,wDAA0C;AAC1C,yCAA2B;AAC3B,2CAA6B;AAC7B,iCAAyD;AACzD,6CAA6D;AAC7D,mDAA0D;AAE1D,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,QAAQ,GAAG,KAAK,CAAC;AAGvB;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB;IAC5B,MAAM,WAAW,GAAG,GAAG,CAAC;IAExB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAE9E,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,WAAW,CAAC,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,MAAM,WAAW,GAAG,GAAG,EAAE;YACrB,QAAQ,EAAE,CAAC;YAEX,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC5D,yEAAyE;gBACzE,sDAAsD;gBACtD,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACpB,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,IAAI,UAAU,WAAW,WAAW,CAAC,CAAC,CAAC;gBAC9F,CAAC;qBAAM,CAAC;oBACJ,gCAAgC;oBAChC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;gBACtB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACJ,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,WAAW,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW;IAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;QACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAOM,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,OAAgB,EAAE,OAAkB,EAAE,UAA0B,EAAE;IACtH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,qEAAqE;IACrE,yDAAyD;IACzD,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IAE7B,sEAAsE;IACtE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,6BAA6B,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAE5C,IAAI,CAAC;QACD,iDAAiD;QACjD,IAAI,GAAG,GAAW,EAAE,CAAC;QAErB,IAAI,OAAO,EAAE,CAAC;YACV,oCAAoC;YACpC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,GAAG,GAAG,OAAO,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;QACD,mEAAmE;QAEnE,sBAAsB;QACtB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAErC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,IAAA,2BAAc,EAAC,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEhE,qDAAqD;QACrD,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEhC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,IAAI,SAAiB,CAAC;QAEtB,IAAI,CAAC;YACD,SAAS,GAAG,MAAM,IAAA,2BAAW,EAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,sCAAsC;QACtC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEzB,8BAA8B;QAC9B,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,wBAAwB;QACxB,IAAI,YAAoB,CAAC;QACzB,IAAI,SAAmB,CAAC;QAExB,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,2DAA2D;YAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnD,qEAAqE;gBACrE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,yCAAyC;gBACzC,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,0CAA0C;YAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC;YAC9C,YAAY,GAAG,KAAK,CAAC;YACrB,SAAS,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,iCAAiC;QACjC,IAAA,gBAAS,EAAC;YACN,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACrB,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAA,iBAAU,EAAC,CAAC,IAAY,EAAE,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,IAAA,eAAQ,GAAE,CAAC;YACX,IAAA,0BAAa,GAAE,CAAC;YAChB,IAAA,0BAAU,GAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,gBAAgB;QAChB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,IAAA,0BAAa,GAAE,CAAC;QAChB,IAAA,0BAAU,GAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vortex-tunnel.d.ts","sourceRoot":"","sources":["../src/vortex-tunnel.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAa,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwElF;AAwXD,wBAAgB,UAAU,IAAI,IAAI,CASjC;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
1
+ {"version":3,"file":"vortex-tunnel.d.ts","sourceRoot":"","sources":["../src/vortex-tunnel.ts"],"names":[],"mappings":"AAgEA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAa,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ElF;AA48BD,wBAAgB,UAAU,IAAI,IAAI,CAcjC;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
@@ -49,11 +49,19 @@ let sessionId = null;
49
49
  let gatewayUrl = null;
50
50
  let localPort = null;
51
51
  let heartbeatInterval = null;
52
+ let isReconnecting = false;
53
+ let reconnectAttempts = 0;
52
54
  // Heartbeat configuration
53
- const HEARTBEAT_INTERVAL_MS = 20 * 1000; // Send heartbeat every 30 seconds
55
+ const HEARTBEAT_INTERVAL_MS = 20 * 1000; // Send heartbeat every 20 seconds
56
+ const MAX_RECONNECT_ATTEMPTS = 100; // Max reconnect attempts (essentially unlimited for home use)
57
+ const MAX_RECONNECT_DELAY_MS = 60 * 1000; // Max 60 seconds between reconnect attempts
54
58
  const MAX_PAYLOAD_SIZE = 64 * 1024 * 1024; // 64MB max message size for large file transfer
55
59
  // Map to store pending HTTP requests
56
60
  const pendingRequests = new Map();
61
+ // Current running task
62
+ let currentTask = null;
63
+ // Pending task exec responses (for command execution within tasks)
64
+ const pendingTaskExecs = new Map();
57
65
  // Single shared WebSocket connection to local server
58
66
  let sharedLocalWs = null;
59
67
  let sharedLocalWsReady = false;
@@ -65,10 +73,11 @@ function startTunnel(port = 4020, gateway) {
65
73
  return new Promise(async (resolve, reject) => {
66
74
  try {
67
75
  localPort = port;
68
- gatewayUrl = gateway || process.env.VORTEX_GATEWAY || 'https://vortex.futuretech.social';
76
+ // Gateway URL: Cloudflare Workers (replaces Vortex Gateway VPS)
77
+ gatewayUrl = gateway || process.env.VORTEX_GATEWAY || 'https://sandbox.locus.cool';
69
78
  console.log(` [Vortex] Connecting to gateway: ${gatewayUrl}`);
70
- // Step 1: Create session on gateway (v2 API)
71
- const response = await axios_1.default.post(`${gatewayUrl}/api/session`, {
79
+ // Step 1: Create session on gateway
80
+ const response = await axios_1.default.post(`${gatewayUrl}/api/tunnel/session`, {
72
81
  mode: 'http_proxy',
73
82
  client_type: `LeverageAI-Agent/${process.platform}`
74
83
  });
@@ -82,7 +91,8 @@ function startTunnel(port = 4020, gateway) {
82
91
  session_id: session_id,
83
92
  });
84
93
  // Step 3: Connect WebSocket to gateway
85
- const wsUrl = gatewayUrl.replace('https://', 'wss://').replace('http://', 'ws://') + `/tunnel/${session_id}`;
94
+ // Use ws_url from server if available, otherwise construct from gateway URL
95
+ const wsUrl = ws_url || (gatewayUrl.replace('https://', 'wss://').replace('http://', 'ws://') + `/api/tunnel/${session_id}`);
86
96
  console.log(` [Vortex] Establishing WebSocket tunnel...`);
87
97
  tunnelWs = new ws_1.default(wsUrl, {
88
98
  maxPayload: MAX_PAYLOAD_SIZE
@@ -108,7 +118,10 @@ function startTunnel(port = 4020, gateway) {
108
118
  console.log(' [Vortex] Tunnel disconnected');
109
119
  stopHeartbeat();
110
120
  tunnelWs = null;
111
- cleanup();
121
+ // Auto reconnect instead of cleanup
122
+ if (!isReconnecting && sessionId && gatewayUrl) {
123
+ attemptTunnelReconnect();
124
+ }
112
125
  });
113
126
  tunnelWs.on('error', (err) => {
114
127
  console.error(' [Vortex] Tunnel error:', err.message);
@@ -143,10 +156,61 @@ function createSharedLocalConnection() {
143
156
  sharedLocalWsReady = true;
144
157
  });
145
158
  sharedLocalWs.on('message', (data) => {
146
- // Forward data from local server to all browsers through gateway
159
+ const dataStr = Buffer.isBuffer(data) ? data.toString() : data.toString();
160
+ // Check if this is task-related output (contains markers)
161
+ if (pendingTaskExecs.size > 0 && dataStr.includes('<<TASK_EXEC_')) {
162
+ processTaskOutput(dataStr);
163
+ // Don't forward task execution output to browsers
164
+ return;
165
+ }
166
+ // Check if this is raw terminal output that might be part of task execution
167
+ try {
168
+ const msg = JSON.parse(dataStr);
169
+ if (msg.type === 'output' && pendingTaskExecs.size > 0) {
170
+ // Could be task output - check for markers
171
+ if (msg.data && (msg.data.includes('<<TASK_EXEC_') || currentTask)) {
172
+ processTaskOutput(msg.data);
173
+ return;
174
+ }
175
+ }
176
+ // Handle AI chat task responses from local server
177
+ if (msg.type === 'ai_chat_response' && currentTask && currentTask.type === 'ai_chat') {
178
+ sendToGateway({
179
+ type: 'task_output',
180
+ task_id: currentTask.id,
181
+ chunk: msg.content || ''
182
+ });
183
+ return;
184
+ }
185
+ if (msg.type === 'ai_chat_complete' && currentTask && currentTask.type === 'ai_chat') {
186
+ sendToGateway({
187
+ type: 'task_complete',
188
+ task_id: currentTask.id,
189
+ success: true,
190
+ output: msg.full_response || currentTask.accumulatedOutput
191
+ });
192
+ currentTask = null;
193
+ return;
194
+ }
195
+ if (msg.type === 'ai_chat_error' && currentTask && currentTask.type === 'ai_chat') {
196
+ sendToGateway({
197
+ type: 'task_error',
198
+ task_id: currentTask.id,
199
+ error: msg.error || 'AI chat failed'
200
+ });
201
+ currentTask = null;
202
+ return;
203
+ }
204
+ }
205
+ catch {
206
+ // Not JSON, might be raw output
207
+ if (pendingTaskExecs.size > 0 && dataStr.includes('<<TASK_EXEC_')) {
208
+ processTaskOutput(dataStr);
209
+ return;
210
+ }
211
+ }
212
+ // Forward data from local server to all browsers through gateway (legacy mode)
147
213
  if (tunnelWs && tunnelWs.readyState === ws_1.default.OPEN) {
148
- // Local server sends JSON text, forward it directly
149
- const dataStr = Buffer.isBuffer(data) ? data.toString() : data.toString();
150
214
  tunnelWs.send(dataStr);
151
215
  }
152
216
  });
@@ -218,6 +282,14 @@ function handleGatewayMessage(msg) {
218
282
  if (!sharedLocalWsReady) {
219
283
  createSharedLocalConnection();
220
284
  }
285
+ else {
286
+ // Send Ctrl+C to reset shell state in case previous session left it in a bad state
287
+ // (e.g., stuck in heredoc mode, waiting for input, etc.)
288
+ if (sharedLocalWs && sharedLocalWs.readyState === ws_1.default.OPEN) {
289
+ console.log(` [Vortex] Sending Ctrl+C to reset shell state`);
290
+ sharedLocalWs.send(JSON.stringify({ type: 'input', data: '\x03' }));
291
+ }
292
+ }
221
293
  break;
222
294
  case 'client_disconnected':
223
295
  console.log(` [Vortex] Client disconnected`);
@@ -225,6 +297,15 @@ function handleGatewayMessage(msg) {
225
297
  case 'pong':
226
298
  // Heartbeat response received, connection is alive
227
299
  break;
300
+ // ============== Task Queue Protocol (v3) ==============
301
+ case 'task_execute':
302
+ // Gateway asking us to execute a task
303
+ handleTaskExecute(msg);
304
+ break;
305
+ case 'task_cancel':
306
+ // Gateway asking us to cancel a task
307
+ handleTaskCancel(msg.task_id);
308
+ break;
228
309
  default:
229
310
  // Forward any other message to local server (v2 protocol - direct relay)
230
311
  // This handles input, resize, ping, etc. from browser
@@ -234,6 +315,348 @@ function handleGatewayMessage(msg) {
234
315
  break;
235
316
  }
236
317
  }
318
+ // ============================================================================
319
+ // Task Execution (v3 Protocol)
320
+ // ============================================================================
321
+ /**
322
+ * Handle task execution request from Gateway
323
+ */
324
+ async function handleTaskExecute(msg) {
325
+ const { task_id, task_type, payload } = msg;
326
+ if (currentTask && !currentTask.cancelled) {
327
+ // Already executing a task, shouldn't happen if gateway queues properly
328
+ console.error(` [Task] Error: Already executing task ${currentTask.id}`);
329
+ sendToGateway({
330
+ type: 'task_error',
331
+ task_id,
332
+ error: 'Already executing another task'
333
+ });
334
+ return;
335
+ }
336
+ console.log(` [Task] Executing task ${task_id} (${task_type})`);
337
+ currentTask = {
338
+ id: task_id,
339
+ type: task_type,
340
+ payload,
341
+ startTime: Date.now(),
342
+ accumulatedOutput: '',
343
+ cancelled: false
344
+ };
345
+ try {
346
+ switch (task_type) {
347
+ case 'exec':
348
+ await executeExecTask(task_id, payload);
349
+ break;
350
+ case 'ai_chat':
351
+ await executeAiChatTask(task_id, payload);
352
+ break;
353
+ case 'file_read':
354
+ await executeFileReadTask(task_id, payload);
355
+ break;
356
+ case 'file_write':
357
+ await executeFileWriteTask(task_id, payload);
358
+ break;
359
+ default:
360
+ throw new Error(`Unknown task type: ${task_type}`);
361
+ }
362
+ }
363
+ catch (error) {
364
+ console.error(` [Task] Error executing task ${task_id}:`, error.message);
365
+ if (!currentTask?.cancelled) {
366
+ sendToGateway({
367
+ type: 'task_error',
368
+ task_id,
369
+ error: error.message
370
+ });
371
+ }
372
+ }
373
+ finally {
374
+ currentTask = null;
375
+ }
376
+ }
377
+ /**
378
+ * Handle task cancellation request
379
+ */
380
+ function handleTaskCancel(taskId) {
381
+ if (currentTask && currentTask.id === taskId) {
382
+ console.log(` [Task] Cancelling task ${taskId}`);
383
+ currentTask.cancelled = true;
384
+ // Cancel any pending exec for this task
385
+ for (const [execId, pending] of pendingTaskExecs.entries()) {
386
+ if (pending.taskId === taskId) {
387
+ pending.reject(new Error('Task cancelled'));
388
+ pendingTaskExecs.delete(execId);
389
+ }
390
+ }
391
+ // Send Ctrl+C to interrupt any running command
392
+ if (sharedLocalWs && sharedLocalWs.readyState === ws_1.default.OPEN) {
393
+ sharedLocalWs.send(JSON.stringify({ type: 'input', data: '\x03' }));
394
+ }
395
+ }
396
+ }
397
+ /**
398
+ * Execute a shell command task
399
+ */
400
+ async function executeExecTask(taskId, payload) {
401
+ const { command } = payload;
402
+ if (!command) {
403
+ throw new Error('No command specified');
404
+ }
405
+ if (!sharedLocalWs || sharedLocalWs.readyState !== ws_1.default.OPEN) {
406
+ throw new Error('Local WebSocket not connected');
407
+ }
408
+ console.log(` [Task] Executing command: ${command.substring(0, 50)}...`);
409
+ const result = await executeCommandWithOutput(taskId, command);
410
+ console.log(` [Task] executeCommandWithOutput returned for ${taskId}, exitCode=${result.exitCode}`);
411
+ if (currentTask?.cancelled) {
412
+ console.log(` [Task] Task ${taskId} was cancelled, not sending complete`);
413
+ return;
414
+ }
415
+ console.log(` [Task] Sending task_complete for ${taskId}`);
416
+ sendToGateway({
417
+ type: 'task_complete',
418
+ task_id: taskId,
419
+ success: result.exitCode === 0,
420
+ output: result.output,
421
+ exit_code: result.exitCode
422
+ });
423
+ console.log(` [Task] task_complete sent for ${taskId}`);
424
+ }
425
+ /**
426
+ * Execute command and collect output with streaming
427
+ */
428
+ function executeCommandWithOutput(taskId, command) {
429
+ return new Promise((resolve, reject) => {
430
+ const execId = `exec_${taskId}_${Date.now()}`;
431
+ const startMarker = `<<TASK_EXEC_START_${execId}>>`;
432
+ const endMarkerPrefix = `<<TASK_EXEC_END_${execId}>>_`;
433
+ pendingTaskExecs.set(execId, {
434
+ taskId,
435
+ resolve,
436
+ reject,
437
+ output: ''
438
+ });
439
+ // Set timeout
440
+ const timeout = setTimeout(() => {
441
+ const pending = pendingTaskExecs.get(execId);
442
+ if (pending) {
443
+ pendingTaskExecs.delete(execId);
444
+ reject(new Error('Command timed out'));
445
+ }
446
+ }, 300000); // 5 minute timeout
447
+ // Store timeout for cleanup
448
+ pendingTaskExecs.get(execId).timeout = timeout;
449
+ // Send wrapped command
450
+ const wrappedCommand = `echo '${startMarker}'; ${command}; echo '${endMarkerPrefix}'$?\n`;
451
+ if (sharedLocalWs && sharedLocalWs.readyState === ws_1.default.OPEN) {
452
+ sharedLocalWs.send(JSON.stringify({ type: 'input', data: wrappedCommand }));
453
+ }
454
+ else {
455
+ pendingTaskExecs.delete(execId);
456
+ clearTimeout(timeout);
457
+ reject(new Error('WebSocket not connected'));
458
+ }
459
+ });
460
+ }
461
+ /**
462
+ * Execute AI chat task (forward to local server for AI processing)
463
+ */
464
+ async function executeAiChatTask(taskId, payload) {
465
+ // AI chat tasks are forwarded to the local web server which handles Claude API
466
+ // The local server will send streaming responses back
467
+ if (!sharedLocalWs || sharedLocalWs.readyState !== ws_1.default.OPEN) {
468
+ throw new Error('Local WebSocket not connected');
469
+ }
470
+ // Send AI chat request to local server
471
+ sharedLocalWs.send(JSON.stringify({
472
+ type: 'ai_chat_task',
473
+ task_id: taskId,
474
+ message: payload.message,
475
+ context: payload.context
476
+ }));
477
+ // The response will come through the normal WebSocket message handler
478
+ // which will detect ai_chat_response and forward appropriately
479
+ }
480
+ /**
481
+ * Execute file read task
482
+ * Supports both text files (utf-8) and binary files (base64)
483
+ */
484
+ async function executeFileReadTask(taskId, payload) {
485
+ let { file_path } = payload;
486
+ if (!file_path) {
487
+ throw new Error('No file path specified');
488
+ }
489
+ const fs = require('fs').promises;
490
+ const path = require('path');
491
+ const os = require('os');
492
+ // Expand ~ to home directory
493
+ if (file_path.startsWith('~')) {
494
+ file_path = file_path.replace('~', os.homedir());
495
+ }
496
+ try {
497
+ // Check if file exists and get stats
498
+ const stats = await fs.stat(file_path);
499
+ const fileName = path.basename(file_path);
500
+ const ext = path.extname(file_path).toLowerCase();
501
+ // Binary file extensions
502
+ const binaryExtensions = ['.png', '.jpg', '.jpeg', '.gif', '.bmp', '.ico', '.webp',
503
+ '.pdf', '.zip', '.tar', '.gz', '.rar', '.7z',
504
+ '.mp3', '.mp4', '.wav', '.avi', '.mov', '.mkv',
505
+ '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx',
506
+ '.exe', '.dll', '.so', '.dylib', '.bin'];
507
+ const isBinary = binaryExtensions.includes(ext);
508
+ if (isBinary) {
509
+ // Read as binary and encode to base64
510
+ const buffer = await fs.readFile(file_path);
511
+ const base64Content = buffer.toString('base64');
512
+ // Determine MIME type
513
+ const mimeTypes = {
514
+ '.png': 'image/png',
515
+ '.jpg': 'image/jpeg',
516
+ '.jpeg': 'image/jpeg',
517
+ '.gif': 'image/gif',
518
+ '.bmp': 'image/bmp',
519
+ '.webp': 'image/webp',
520
+ '.pdf': 'application/pdf',
521
+ '.zip': 'application/zip',
522
+ '.mp3': 'audio/mpeg',
523
+ '.mp4': 'video/mp4',
524
+ };
525
+ const mimeType = mimeTypes[ext] || 'application/octet-stream';
526
+ sendToGateway({
527
+ type: 'task_complete',
528
+ task_id: taskId,
529
+ success: true,
530
+ file_name: fileName,
531
+ file_path: file_path,
532
+ file_size: stats.size,
533
+ file_type: mimeType,
534
+ content_base64: base64Content,
535
+ is_binary: true
536
+ });
537
+ }
538
+ else {
539
+ // Read as text
540
+ const content = await fs.readFile(file_path, 'utf-8');
541
+ sendToGateway({
542
+ type: 'task_complete',
543
+ task_id: taskId,
544
+ success: true,
545
+ file_name: fileName,
546
+ file_path: file_path,
547
+ file_size: stats.size,
548
+ file_content: content,
549
+ is_binary: false
550
+ });
551
+ }
552
+ }
553
+ catch (error) {
554
+ throw new Error(`Failed to read file: ${error.message}`);
555
+ }
556
+ }
557
+ /**
558
+ * Execute file write task
559
+ */
560
+ async function executeFileWriteTask(taskId, payload) {
561
+ let { file_path, file_content } = payload;
562
+ if (!file_path || file_content === undefined) {
563
+ throw new Error('File path and content required');
564
+ }
565
+ const fs = require('fs').promises;
566
+ const os = require('os');
567
+ // Expand ~ to home directory
568
+ if (file_path.startsWith('~')) {
569
+ file_path = file_path.replace('~', os.homedir());
570
+ }
571
+ try {
572
+ await fs.writeFile(file_path, file_content, 'utf-8');
573
+ sendToGateway({
574
+ type: 'task_complete',
575
+ task_id: taskId,
576
+ success: true,
577
+ output: `File written: ${file_path}`
578
+ });
579
+ }
580
+ catch (error) {
581
+ throw new Error(`Failed to write file: ${error.message}`);
582
+ }
583
+ }
584
+ /**
585
+ * Process output from local WebSocket for task execution
586
+ * Called when we receive output that might contain task markers
587
+ */
588
+ function processTaskOutput(data) {
589
+ console.log(` [Task] processTaskOutput called, data length: ${data.length}, pendingCount: ${pendingTaskExecs.size}`);
590
+ console.log(` [Task] Data preview: ${data.substring(0, 200).replace(/\n/g, '\\n')}`);
591
+ // Check for task exec markers
592
+ for (const [execId, pending] of pendingTaskExecs.entries()) {
593
+ const startMarker = `<<TASK_EXEC_START_${execId}>>`;
594
+ const endMarkerPrefix = `<<TASK_EXEC_END_${execId}>>_`;
595
+ console.log(` [Task] Checking execId: ${execId}`);
596
+ // Track if we've seen start marker
597
+ const hasSeenStart = pending.hasSeenStart || false;
598
+ // Check if this data contains start marker
599
+ if (!hasSeenStart && data.includes(startMarker)) {
600
+ // Extract content after start marker
601
+ const startIdx = data.indexOf(startMarker);
602
+ data = data.substring(startIdx + startMarker.length);
603
+ // Skip leading newlines
604
+ while (data.startsWith('\n') || data.startsWith('\r')) {
605
+ data = data.substring(1);
606
+ }
607
+ pending.hasSeenStart = true;
608
+ }
609
+ else if (!hasSeenStart) {
610
+ // Haven't seen start marker yet, ignore this chunk (it's command echo)
611
+ continue;
612
+ }
613
+ // Check for end marker first (might be in same chunk as start)
614
+ const endIdx = data.indexOf(endMarkerPrefix);
615
+ if (endIdx !== -1) {
616
+ console.log(` [Task] Found end marker for ${execId}, endIdx=${endIdx}`);
617
+ // Only take content before end marker
618
+ const cleanOutput = data.substring(0, endIdx);
619
+ pending.output += cleanOutput;
620
+ const afterEnd = data.substring(endIdx + endMarkerPrefix.length);
621
+ const exitCodeMatch = afterEnd.match(/^(\d+)/);
622
+ const exitCode = exitCodeMatch ? parseInt(exitCodeMatch[1], 10) : 0;
623
+ console.log(` [Task] Exit code: ${exitCode}, output length: ${pending.output.length}`);
624
+ // Clear timeout
625
+ if (pending.timeout) {
626
+ clearTimeout(pending.timeout);
627
+ }
628
+ // Send final clean output to gateway
629
+ const finalOutput = pending.output.trim();
630
+ console.log(` [Task] Sending final output to gateway`);
631
+ if (currentTask && !currentTask.cancelled) {
632
+ sendToGateway({
633
+ type: 'task_output',
634
+ task_id: pending.taskId,
635
+ chunk: finalOutput,
636
+ is_final: true
637
+ });
638
+ }
639
+ // Resolve promise
640
+ console.log(` [Task] Resolving promise for ${execId}`);
641
+ pending.resolve({
642
+ output: finalOutput,
643
+ exitCode
644
+ });
645
+ pendingTaskExecs.delete(execId);
646
+ return;
647
+ }
648
+ // No end marker yet, append clean data (for streaming)
649
+ if (currentTask && !currentTask.cancelled && data.length > 0) {
650
+ pending.output += data;
651
+ // Send streaming chunk to gateway (only clean output)
652
+ sendToGateway({
653
+ type: 'task_output',
654
+ task_id: pending.taskId,
655
+ chunk: data
656
+ });
657
+ }
658
+ }
659
+ }
237
660
  /**
238
661
  * Handle HTTP request forwarded from gateway
239
662
  * Forward it to the local server and send response back
@@ -427,6 +850,121 @@ function stopHeartbeat() {
427
850
  heartbeatInterval = null;
428
851
  }
429
852
  }
853
+ /**
854
+ * Attempt to reconnect tunnel with exponential backoff
855
+ * Keeps the same session ID so iOS doesn't need to re-scan QR code
856
+ */
857
+ async function attemptTunnelReconnect() {
858
+ if (isReconnecting) {
859
+ return;
860
+ }
861
+ isReconnecting = true;
862
+ while (reconnectAttempts < MAX_RECONNECT_ATTEMPTS) {
863
+ reconnectAttempts++;
864
+ const delay = Math.min(Math.pow(2, reconnectAttempts) * 1000, MAX_RECONNECT_DELAY_MS);
865
+ console.log(` [Vortex] Tunnel reconnect attempt ${reconnectAttempts}/${MAX_RECONNECT_ATTEMPTS} in ${delay / 1000}s...`);
866
+ await new Promise(resolve => setTimeout(resolve, delay));
867
+ try {
868
+ await reconnectTunnel();
869
+ console.log(` [Vortex] Tunnel reconnected successfully!`);
870
+ reconnectAttempts = 0;
871
+ isReconnecting = false;
872
+ return;
873
+ }
874
+ catch (error) {
875
+ console.error(` [Vortex] Reconnect failed: ${error.message}`);
876
+ }
877
+ }
878
+ console.log(` [Vortex] Max reconnect attempts reached, giving up`);
879
+ isReconnecting = false;
880
+ cleanup();
881
+ }
882
+ /**
883
+ * Reconnect tunnel using existing session ID
884
+ */
885
+ async function reconnectTunnel() {
886
+ if (!sessionId || !gatewayUrl || !localPort) {
887
+ throw new Error('Missing session info for reconnect');
888
+ }
889
+ // Re-register tunnel with gateway (session should still exist)
890
+ try {
891
+ await axios_1.default.post(`${gatewayUrl}/api/tunnel/register`, {
892
+ session_id: sessionId,
893
+ });
894
+ }
895
+ catch (e) {
896
+ // If session expired, recreate with same session_id to keep URL stable
897
+ if (e.response?.status === 404) {
898
+ console.log(` [Vortex] Session expired, recreating with same ID...`);
899
+ const response = await axios_1.default.post(`${gatewayUrl}/api/tunnel/session`, {
900
+ mode: 'http_proxy',
901
+ client_type: `LeverageAI-Agent/${process.platform}`,
902
+ session_id: sessionId // Reuse same ID so URL doesn't change
903
+ });
904
+ const { session_id } = response.data;
905
+ sessionId = session_id;
906
+ console.log(` [Vortex] Session recreated: ${session_id.substring(0, 8)}... (same URL)`);
907
+ // Register new tunnel
908
+ await axios_1.default.post(`${gatewayUrl}/api/tunnel/register`, {
909
+ session_id: session_id,
910
+ });
911
+ }
912
+ else {
913
+ throw e;
914
+ }
915
+ }
916
+ // Connect WebSocket to gateway
917
+ const wsUrl = gatewayUrl.replace('https://', 'wss://').replace('http://', 'ws://') + `/api/tunnel/${sessionId}`;
918
+ return new Promise((resolve, reject) => {
919
+ tunnelWs = new ws_1.default(wsUrl, {
920
+ maxPayload: MAX_PAYLOAD_SIZE
921
+ });
922
+ tunnelWs.on('open', () => {
923
+ console.log(` [Vortex] Tunnel reconnected`);
924
+ startHeartbeat();
925
+ // Recreate shared local connection
926
+ createSharedLocalConnection();
927
+ // Reset shell state after reconnect (same as client_connected handler)
928
+ // Prevents shell from being stuck in a bad state (e.g., waiting for input)
929
+ setTimeout(() => {
930
+ if (sharedLocalWs && sharedLocalWs.readyState === ws_1.default.OPEN) {
931
+ console.log(` [Vortex] Sending Ctrl+C to reset shell state after reconnect`);
932
+ sharedLocalWs.send(JSON.stringify({ type: 'input', data: '\x03' }));
933
+ }
934
+ }, 500);
935
+ resolve();
936
+ });
937
+ tunnelWs.on('message', (data) => {
938
+ try {
939
+ const msg = JSON.parse(data.toString());
940
+ handleGatewayMessage(msg);
941
+ }
942
+ catch (e) {
943
+ console.error('[Vortex] Invalid message from gateway:', e);
944
+ }
945
+ });
946
+ tunnelWs.on('close', () => {
947
+ console.log(' [Vortex] Tunnel disconnected');
948
+ stopHeartbeat();
949
+ tunnelWs = null;
950
+ // Auto reconnect again
951
+ if (!isReconnecting && sessionId && gatewayUrl) {
952
+ attemptTunnelReconnect();
953
+ }
954
+ });
955
+ tunnelWs.on('error', (err) => {
956
+ console.error(' [Vortex] Tunnel error:', err.message);
957
+ reject(err);
958
+ });
959
+ // Timeout for connection
960
+ setTimeout(() => {
961
+ if (tunnelWs && tunnelWs.readyState !== ws_1.default.OPEN) {
962
+ tunnelWs.close();
963
+ reject(new Error('Connection timeout'));
964
+ }
965
+ }, 10000);
966
+ });
967
+ }
430
968
  /**
431
969
  * Clean up resources
432
970
  */
@@ -450,6 +988,8 @@ function cleanup() {
450
988
  websocketConnections.clear();
451
989
  }
452
990
  function stopTunnel() {
991
+ // Set reconnecting to true to prevent auto-reconnect on manual stop
992
+ isReconnecting = true;
453
993
  stopHeartbeat();
454
994
  if (tunnelWs) {
455
995
  tunnelWs.close();
@@ -458,6 +998,9 @@ function stopTunnel() {
458
998
  cleanup();
459
999
  tunnelUrl = null;
460
1000
  sessionId = null;
1001
+ gatewayUrl = null;
1002
+ isReconnecting = false;
1003
+ reconnectAttempts = 0;
461
1004
  }
462
1005
  function getTunnelUrl() {
463
1006
  return tunnelUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"vortex-tunnel.js","sourceRoot":"","sources":["../src/vortex-tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vortex-tunnel.js","sourceRoot":"","sources":["../src/vortex-tunnel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leverageaiapps/locus",
3
- "version": "1.1.2",
3
+ "version": "2.1.0",
4
4
  "description": "Locus - Forward your terminal to your mobile device. Code anywhere from your pocket.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {