termify-agent 1.0.19 → 1.0.21
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.
- package/README.md +4 -4
- package/binaries/stats-agent-win32-x64.exe +0 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +6 -0
- package/dist/agent.js.map +1 -1
- package/dist/daemon-client.d.ts +1 -0
- package/dist/daemon-client.d.ts.map +1 -1
- package/dist/daemon-client.js +19 -0
- package/dist/daemon-client.js.map +1 -1
- package/dist/pty-manager.d.ts +60 -2
- package/dist/pty-manager.d.ts.map +1 -1
- package/dist/pty-manager.js +340 -33
- package/dist/pty-manager.js.map +1 -1
- package/dist/stats-manager.d.ts.map +1 -1
- package/dist/stats-manager.js +26 -21
- package/dist/stats-manager.js.map +1 -1
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +18 -5
- package/dist/ws-client.js.map +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +81 -20
package/dist/stats-manager.js
CHANGED
|
@@ -69,7 +69,7 @@ export class StatsManager {
|
|
|
69
69
|
}
|
|
70
70
|
logger.info('Stopping stats-agent');
|
|
71
71
|
this.isRunning = false;
|
|
72
|
-
this.process.kill(
|
|
72
|
+
this.process.kill();
|
|
73
73
|
this.process = null;
|
|
74
74
|
this.buffer = '';
|
|
75
75
|
}
|
|
@@ -138,33 +138,23 @@ export class StatsManager {
|
|
|
138
138
|
*/
|
|
139
139
|
findBinary() {
|
|
140
140
|
const homeDir = os.homedir();
|
|
141
|
+
const isWin = os.platform() === 'win32';
|
|
142
|
+
const exe = isWin ? '.exe' : '';
|
|
143
|
+
const binaryName = `stats-agent${exe}`;
|
|
141
144
|
// Possible locations to search
|
|
142
145
|
const searchPaths = [
|
|
143
146
|
// User's termify directory
|
|
144
|
-
path.join(homeDir, '.termify',
|
|
147
|
+
path.join(homeDir, '.termify', binaryName),
|
|
145
148
|
// Development paths (relative to termify-agent)
|
|
146
|
-
path.join(process.cwd(), '..', '..', 'tools', 'stats-agent', 'target', 'release',
|
|
147
|
-
path.join(process.cwd(), '..', '..', 'tools', 'stats-agent', 'target', 'debug',
|
|
148
|
-
// Installed globally
|
|
149
|
-
'/usr/local/bin/stats-agent',
|
|
150
|
-
// In PATH
|
|
151
|
-
'stats-agent',
|
|
149
|
+
path.join(process.cwd(), '..', '..', 'tools', 'stats-agent', 'target', 'release', binaryName),
|
|
150
|
+
path.join(process.cwd(), '..', '..', 'tools', 'stats-agent', 'target', 'debug', binaryName),
|
|
152
151
|
];
|
|
152
|
+
if (!isWin) {
|
|
153
|
+
searchPaths.push('/usr/local/bin/stats-agent');
|
|
154
|
+
}
|
|
153
155
|
for (const p of searchPaths) {
|
|
154
156
|
try {
|
|
155
|
-
|
|
156
|
-
if (p === 'stats-agent') {
|
|
157
|
-
// Try to find in PATH by checking common locations
|
|
158
|
-
const pathDirs = (process.env.PATH || '').split(':');
|
|
159
|
-
for (const dir of pathDirs) {
|
|
160
|
-
const fullPath = path.join(dir, 'stats-agent');
|
|
161
|
-
if (existsSync(fullPath)) {
|
|
162
|
-
logger.debug(`Found stats-agent in PATH: ${fullPath}`);
|
|
163
|
-
return fullPath;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
else if (existsSync(p)) {
|
|
157
|
+
if (existsSync(p)) {
|
|
168
158
|
logger.debug(`Found stats-agent at: ${p}`);
|
|
169
159
|
return p;
|
|
170
160
|
}
|
|
@@ -173,6 +163,21 @@ export class StatsManager {
|
|
|
173
163
|
// Ignore errors, continue searching
|
|
174
164
|
}
|
|
175
165
|
}
|
|
166
|
+
// Try to find in PATH
|
|
167
|
+
const pathSep = isWin ? ';' : ':';
|
|
168
|
+
const pathDirs = (process.env.PATH || '').split(pathSep);
|
|
169
|
+
for (const dir of pathDirs) {
|
|
170
|
+
try {
|
|
171
|
+
const fullPath = path.join(dir, binaryName);
|
|
172
|
+
if (existsSync(fullPath)) {
|
|
173
|
+
logger.debug(`Found stats-agent in PATH: ${fullPath}`);
|
|
174
|
+
return fullPath;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
// Ignore errors
|
|
179
|
+
}
|
|
180
|
+
}
|
|
176
181
|
return null;
|
|
177
182
|
}
|
|
178
183
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-manager.js","sourceRoot":"","sources":["../src/stats-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAsF3C;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,OAAO,GAAwB,IAAI,CAAC;IACpC,SAAS,GAAG,KAAK,CAAC;IAClB,aAAa,GAAyB,IAAI,CAAC;IAC3C,MAAM,GAAG,EAAE,CAAC;IACZ,eAAe,CAAS;IAEhC,YAAY,eAAe,GAAG,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;QAEvD,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE;gBACzE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"stats-manager.js","sourceRoot":"","sources":["../src/stats-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/ws-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
|
package/dist/ws-client.js
CHANGED
|
@@ -4,8 +4,10 @@ import { getConfig, setLastConnected } from './config.js';
|
|
|
4
4
|
import { getMachineId, getSystemInfo } from './utils/machine-id.js';
|
|
5
5
|
import { logger } from './utils/logger.js';
|
|
6
6
|
const VERSION = '1.0.0';
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
// Keepalive tuned to survive aggressive proxies/load balancers that
|
|
8
|
+
// drop idle WebSocket connections after a few seconds.
|
|
9
|
+
const PING_INTERVAL = Number(process.env.TERMIFY_AGENT_PING_INTERVAL_MS || 4000); // 4 seconds
|
|
10
|
+
const PONG_TIMEOUT = Number(process.env.TERMIFY_AGENT_PONG_TIMEOUT_MS || 3000); // 3 seconds
|
|
9
11
|
const AGENT_WS_RECONNECT_DELAY = 5000; // 5 seconds
|
|
10
12
|
/**
|
|
11
13
|
* WebSocket client for connecting to Termify server
|
|
@@ -40,7 +42,9 @@ export class WSClient extends EventEmitter {
|
|
|
40
42
|
const wsUrl = config.wsUrl;
|
|
41
43
|
logger.info(`Connecting to ${wsUrl}...`);
|
|
42
44
|
try {
|
|
43
|
-
this.ws = new WebSocket(wsUrl
|
|
45
|
+
this.ws = new WebSocket(wsUrl, {
|
|
46
|
+
perMessageDeflate: false,
|
|
47
|
+
});
|
|
44
48
|
this.ws.on('open', () => {
|
|
45
49
|
logger.debug('WebSocket connected, authenticating...');
|
|
46
50
|
this.authenticate();
|
|
@@ -156,8 +160,10 @@ export class WSClient extends EventEmitter {
|
|
|
156
160
|
handleClose(code, reason) {
|
|
157
161
|
this.isConnected = false;
|
|
158
162
|
this.stopPingInterval();
|
|
159
|
-
|
|
160
|
-
|
|
163
|
+
const closeReason = reason || 'Connection closed';
|
|
164
|
+
const closeDetails = `${closeReason} (code: ${code})`;
|
|
165
|
+
logger.warn(`Disconnected: ${closeDetails}`);
|
|
166
|
+
this.emit('disconnected', closeDetails);
|
|
161
167
|
if (this.shouldReconnect) {
|
|
162
168
|
this.scheduleReconnect();
|
|
163
169
|
}
|
|
@@ -188,6 +194,9 @@ export class WSClient extends EventEmitter {
|
|
|
188
194
|
*/
|
|
189
195
|
startPingInterval() {
|
|
190
196
|
this.stopPingInterval();
|
|
197
|
+
// Send first keepalive immediately after auth success so the
|
|
198
|
+
// connection doesn't sit idle before the first interval tick.
|
|
199
|
+
this.sendPing();
|
|
191
200
|
this.pingInterval = setInterval(() => {
|
|
192
201
|
if (this.isConnected) {
|
|
193
202
|
this.sendPing();
|
|
@@ -211,6 +220,10 @@ export class WSClient extends EventEmitter {
|
|
|
211
220
|
* Send ping message
|
|
212
221
|
*/
|
|
213
222
|
sendPing() {
|
|
223
|
+
if (this.pongTimeout) {
|
|
224
|
+
clearTimeout(this.pongTimeout);
|
|
225
|
+
this.pongTimeout = null;
|
|
226
|
+
}
|
|
214
227
|
this.send({ type: 'agent.ping' });
|
|
215
228
|
// Set timeout for pong response
|
|
216
229
|
this.pongTimeout = setTimeout(() => {
|
package/dist/ws-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,OAAO,GAAG,OAAO,CAAC;AACxB,MAAM,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -10,19 +10,23 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { execSync } from 'child_process';
|
|
13
|
-
import { createWriteStream, mkdirSync, chmodSync, existsSync, unlinkSync, copyFileSync } from 'fs';
|
|
13
|
+
import { createWriteStream, mkdirSync, chmodSync, existsSync, unlinkSync, copyFileSync, rmSync } from 'fs';
|
|
14
14
|
import { join, dirname } from 'path';
|
|
15
15
|
import { homedir, platform, arch } from 'os';
|
|
16
16
|
import { get } from 'https';
|
|
17
17
|
import { fileURLToPath } from 'url';
|
|
18
|
+
import { createRequire } from 'module';
|
|
18
19
|
|
|
19
20
|
const __filename = fileURLToPath(import.meta.url);
|
|
20
21
|
const __dirname = dirname(__filename);
|
|
22
|
+
const require = createRequire(import.meta.url);
|
|
21
23
|
|
|
22
24
|
const DOWNLOAD_BASE_URL = 'https://termify.justdiego.com/api/downloads';
|
|
25
|
+
const IS_WIN = platform() === 'win32';
|
|
26
|
+
const EXE = IS_WIN ? '.exe' : '';
|
|
23
27
|
const TERMIFY_DIR = join(homedir(), '.termify');
|
|
24
|
-
const DAEMON_PATH = join(TERMIFY_DIR,
|
|
25
|
-
const STATS_AGENT_PATH = join(TERMIFY_DIR,
|
|
28
|
+
const DAEMON_PATH = join(TERMIFY_DIR, `termify-daemon${EXE}`);
|
|
29
|
+
const STATS_AGENT_PATH = join(TERMIFY_DIR, `stats-agent${EXE}`);
|
|
26
30
|
|
|
27
31
|
/**
|
|
28
32
|
* Test if node-pty actually works by spawning a shell
|
|
@@ -52,6 +56,19 @@ function testNodePty() {
|
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
58
|
|
|
59
|
+
/**
|
|
60
|
+
* Resolve the actual installed node-pty directory.
|
|
61
|
+
* Important when npm hoists dependencies or when install paths vary.
|
|
62
|
+
*/
|
|
63
|
+
function resolveNodePtyDir() {
|
|
64
|
+
try {
|
|
65
|
+
const pkgPath = require.resolve('node-pty/package.json');
|
|
66
|
+
return dirname(pkgPath);
|
|
67
|
+
} catch (err) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
55
72
|
/**
|
|
56
73
|
* Step 1: Rebuild node-pty with improved error handling
|
|
57
74
|
* For Node.js v24+, prebuilds may not be compatible, so we compile from source
|
|
@@ -66,13 +83,25 @@ function rebuildNodePty() {
|
|
|
66
83
|
return true;
|
|
67
84
|
}
|
|
68
85
|
|
|
69
|
-
|
|
86
|
+
const nodePtyDir = resolveNodePtyDir();
|
|
87
|
+
if (!nodePtyDir) {
|
|
88
|
+
console.error('[termify-agent] CRITICAL: node-pty directory not found.');
|
|
89
|
+
console.error('[termify-agent] Manual fix: npm install node-pty --build-from-source');
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
console.log(`[termify-agent] node-pty resolved at: ${nodePtyDir}`);
|
|
94
|
+
console.log('[termify-agent] node-pty prebuilt not working, attempting source rebuild...');
|
|
70
95
|
|
|
71
|
-
// Try
|
|
96
|
+
// Try rebuild from package root first
|
|
72
97
|
try {
|
|
73
98
|
execSync('npm rebuild node-pty', {
|
|
74
99
|
stdio: 'pipe',
|
|
75
100
|
timeout: 180000,
|
|
101
|
+
env: {
|
|
102
|
+
...process.env,
|
|
103
|
+
npm_config_build_from_source: 'true',
|
|
104
|
+
},
|
|
76
105
|
});
|
|
77
106
|
|
|
78
107
|
if (testNodePty()) {
|
|
@@ -83,12 +112,32 @@ function rebuildNodePty() {
|
|
|
83
112
|
// Continue to next step
|
|
84
113
|
}
|
|
85
114
|
|
|
86
|
-
//
|
|
87
|
-
console.log('[termify-agent]
|
|
115
|
+
// Try rebuilding directly in node-pty's own directory
|
|
116
|
+
console.log('[termify-agent] Root rebuild did not fix it, rebuilding inside node-pty directory...');
|
|
117
|
+
try {
|
|
118
|
+
execSync('npm rebuild', {
|
|
119
|
+
stdio: 'pipe',
|
|
120
|
+
timeout: 300000,
|
|
121
|
+
cwd: nodePtyDir,
|
|
122
|
+
env: {
|
|
123
|
+
...process.env,
|
|
124
|
+
npm_config_build_from_source: 'true',
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
if (testNodePty()) {
|
|
129
|
+
console.log('[termify-agent] node-pty rebuilt successfully from module directory.');
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
} catch (err) {
|
|
133
|
+
// Continue to next step
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Prebuilds still don't work, compile from source with node-gyp
|
|
137
|
+
console.log('[termify-agent] Prebuilds still incompatible, compiling with node-gyp...');
|
|
88
138
|
console.log('[termify-agent] This may take a minute (requires Xcode Command Line Tools on macOS)...');
|
|
89
139
|
|
|
90
140
|
try {
|
|
91
|
-
const nodePtyDir = join(process.cwd(), 'node_modules', 'node-pty');
|
|
92
141
|
execSync('npx node-gyp rebuild', {
|
|
93
142
|
stdio: 'inherit',
|
|
94
143
|
timeout: 300000,
|
|
@@ -104,19 +153,28 @@ function rebuildNodePty() {
|
|
|
104
153
|
}
|
|
105
154
|
|
|
106
155
|
// Last resort: try removing and reinstalling
|
|
107
|
-
console.warn('[termify-agent] Attempting full reinstall of node-pty...');
|
|
156
|
+
console.warn('[termify-agent] Attempting full reinstall of node-pty from source...');
|
|
108
157
|
try {
|
|
109
|
-
|
|
158
|
+
rmSync(nodePtyDir, { recursive: true, force: true });
|
|
159
|
+
execSync('npm install node-pty', {
|
|
110
160
|
stdio: 'pipe',
|
|
111
161
|
timeout: 180000,
|
|
162
|
+
env: {
|
|
163
|
+
...process.env,
|
|
164
|
+
npm_config_build_from_source: 'true',
|
|
165
|
+
},
|
|
112
166
|
});
|
|
113
167
|
|
|
114
168
|
// Try node-gyp again after fresh install
|
|
115
|
-
const
|
|
169
|
+
const reinstalledNodePtyDir = resolveNodePtyDir();
|
|
170
|
+
if (!reinstalledNodePtyDir) {
|
|
171
|
+
throw new Error('node-pty not found after reinstall');
|
|
172
|
+
}
|
|
173
|
+
|
|
116
174
|
execSync('npx node-gyp rebuild', {
|
|
117
175
|
stdio: 'inherit',
|
|
118
176
|
timeout: 300000,
|
|
119
|
-
cwd:
|
|
177
|
+
cwd: reinstalledNodePtyDir,
|
|
120
178
|
});
|
|
121
179
|
|
|
122
180
|
if (testNodePty()) {
|
|
@@ -132,8 +190,9 @@ function rebuildNodePty() {
|
|
|
132
190
|
console.error('[termify-agent] ');
|
|
133
191
|
console.error('[termify-agent] Manual fix required:');
|
|
134
192
|
console.error('[termify-agent] 1. Install Xcode Command Line Tools: xcode-select --install');
|
|
135
|
-
console.error(`[termify-agent] 2. cd ${
|
|
136
|
-
console.error('[termify-agent] 3.
|
|
193
|
+
console.error(`[termify-agent] 2. cd ${nodePtyDir}`);
|
|
194
|
+
console.error('[termify-agent] 3. npm rebuild --build-from-source');
|
|
195
|
+
console.error('[termify-agent] 4. npx node-gyp rebuild');
|
|
137
196
|
return false;
|
|
138
197
|
}
|
|
139
198
|
|
|
@@ -150,6 +209,7 @@ async function installDaemon() {
|
|
|
150
209
|
'darwin-x64': 'darwin-x64',
|
|
151
210
|
'linux-x64': 'linux-x64',
|
|
152
211
|
'linux-arm64': 'linux-arm64',
|
|
212
|
+
'win32-x64': 'win32-x64',
|
|
153
213
|
};
|
|
154
214
|
|
|
155
215
|
const key = `${plat}-${ar}`;
|
|
@@ -171,11 +231,11 @@ async function installDaemon() {
|
|
|
171
231
|
mkdirSync(TERMIFY_DIR, { recursive: true });
|
|
172
232
|
|
|
173
233
|
// Try bundled binary first
|
|
174
|
-
const bundledPath = join(__dirname, '..', 'binaries', `termify-daemon-${binaryName}`);
|
|
234
|
+
const bundledPath = join(__dirname, '..', 'binaries', `termify-daemon-${binaryName}${EXE}`);
|
|
175
235
|
if (existsSync(bundledPath)) {
|
|
176
236
|
try {
|
|
177
237
|
copyFileSync(bundledPath, DAEMON_PATH);
|
|
178
|
-
chmodSync(DAEMON_PATH, 0o755);
|
|
238
|
+
if (!IS_WIN) chmodSync(DAEMON_PATH, 0o755);
|
|
179
239
|
console.log(`[termify-agent] termify-daemon installed from bundled binary (${binaryName})`);
|
|
180
240
|
return true;
|
|
181
241
|
} catch (err) {
|
|
@@ -189,7 +249,7 @@ async function installDaemon() {
|
|
|
189
249
|
|
|
190
250
|
try {
|
|
191
251
|
await downloadFile(url, DAEMON_PATH);
|
|
192
|
-
chmodSync(DAEMON_PATH, 0o755);
|
|
252
|
+
if (!IS_WIN) chmodSync(DAEMON_PATH, 0o755);
|
|
193
253
|
console.log(`[termify-agent] termify-daemon downloaded and installed to ${DAEMON_PATH}`);
|
|
194
254
|
return true;
|
|
195
255
|
} catch (err) {
|
|
@@ -212,6 +272,7 @@ async function installStatsAgent() {
|
|
|
212
272
|
'darwin-x64': 'darwin-x64',
|
|
213
273
|
'linux-x64': 'linux-x64',
|
|
214
274
|
'linux-arm64': 'linux-arm64',
|
|
275
|
+
'win32-x64': 'win32-x64',
|
|
215
276
|
};
|
|
216
277
|
|
|
217
278
|
const key = `${plat}-${ar}`;
|
|
@@ -233,11 +294,11 @@ async function installStatsAgent() {
|
|
|
233
294
|
mkdirSync(TERMIFY_DIR, { recursive: true });
|
|
234
295
|
|
|
235
296
|
// Try bundled binary first
|
|
236
|
-
const bundledPath = join(__dirname, '..', 'binaries', `stats-agent-${binaryName}`);
|
|
297
|
+
const bundledPath = join(__dirname, '..', 'binaries', `stats-agent-${binaryName}${EXE}`);
|
|
237
298
|
if (existsSync(bundledPath)) {
|
|
238
299
|
try {
|
|
239
300
|
copyFileSync(bundledPath, STATS_AGENT_PATH);
|
|
240
|
-
chmodSync(STATS_AGENT_PATH, 0o755);
|
|
301
|
+
if (!IS_WIN) chmodSync(STATS_AGENT_PATH, 0o755);
|
|
241
302
|
console.log(`[termify-agent] stats-agent installed from bundled binary (${binaryName})`);
|
|
242
303
|
return;
|
|
243
304
|
} catch (err) {
|
|
@@ -251,7 +312,7 @@ async function installStatsAgent() {
|
|
|
251
312
|
|
|
252
313
|
try {
|
|
253
314
|
await downloadFile(url, STATS_AGENT_PATH);
|
|
254
|
-
chmodSync(STATS_AGENT_PATH, 0o755);
|
|
315
|
+
if (!IS_WIN) chmodSync(STATS_AGENT_PATH, 0o755);
|
|
255
316
|
console.log(`[termify-agent] stats-agent downloaded and installed to ${STATS_AGENT_PATH}`);
|
|
256
317
|
} catch (err) {
|
|
257
318
|
console.warn(`[termify-agent] Warning: Failed to download stats-agent: ${err.message}`);
|