claude-telegram-mirror 0.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.
- package/README.md +331 -0
- package/dist/bot/commands.d.ts +41 -0
- package/dist/bot/commands.d.ts.map +1 -0
- package/dist/bot/commands.js +231 -0
- package/dist/bot/commands.js.map +1 -0
- package/dist/bot/formatting.d.ts +62 -0
- package/dist/bot/formatting.d.ts.map +1 -0
- package/dist/bot/formatting.js +295 -0
- package/dist/bot/formatting.js.map +1 -0
- package/dist/bot/telegram.d.ts +93 -0
- package/dist/bot/telegram.d.ts.map +1 -0
- package/dist/bot/telegram.js +378 -0
- package/dist/bot/telegram.js.map +1 -0
- package/dist/bot/types.d.ts +28 -0
- package/dist/bot/types.d.ts.map +1 -0
- package/dist/bot/types.js +5 -0
- package/dist/bot/types.js.map +1 -0
- package/dist/bridge/daemon.d.ts +93 -0
- package/dist/bridge/daemon.d.ts.map +1 -0
- package/dist/bridge/daemon.js +626 -0
- package/dist/bridge/daemon.js.map +1 -0
- package/dist/bridge/index.d.ts +10 -0
- package/dist/bridge/index.d.ts.map +1 -0
- package/dist/bridge/index.js +9 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/injector.d.ts +97 -0
- package/dist/bridge/injector.d.ts.map +1 -0
- package/dist/bridge/injector.js +289 -0
- package/dist/bridge/injector.js.map +1 -0
- package/dist/bridge/session.d.ts +108 -0
- package/dist/bridge/session.d.ts.map +1 -0
- package/dist/bridge/session.js +381 -0
- package/dist/bridge/session.js.map +1 -0
- package/dist/bridge/socket.d.ts +97 -0
- package/dist/bridge/socket.d.ts.map +1 -0
- package/dist/bridge/socket.js +436 -0
- package/dist/bridge/socket.js.map +1 -0
- package/dist/bridge/types.d.ts +38 -0
- package/dist/bridge/types.d.ts.map +1 -0
- package/dist/bridge/types.js +5 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +332 -0
- package/dist/cli.js.map +1 -0
- package/dist/hooks/handler.d.ts +94 -0
- package/dist/hooks/handler.d.ts.map +1 -0
- package/dist/hooks/handler.js +431 -0
- package/dist/hooks/handler.js.map +1 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +7 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/installer.d.ts +46 -0
- package/dist/hooks/installer.d.ts.map +1 -0
- package/dist/hooks/installer.js +317 -0
- package/dist/hooks/installer.js.map +1 -0
- package/dist/hooks/types.d.ts +88 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +6 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/service/doctor.d.ts +10 -0
- package/dist/service/doctor.d.ts.map +1 -0
- package/dist/service/doctor.js +424 -0
- package/dist/service/doctor.js.map +1 -0
- package/dist/service/manager.d.ts +48 -0
- package/dist/service/manager.d.ts.map +1 -0
- package/dist/service/manager.js +584 -0
- package/dist/service/manager.js.map +1 -0
- package/dist/service/setup.d.ts +10 -0
- package/dist/service/setup.d.ts.map +1 -0
- package/dist/service/setup.js +266 -0
- package/dist/service/setup.js.map +1 -0
- package/dist/utils/chunker.d.ts +24 -0
- package/dist/utils/chunker.d.ts.map +1 -0
- package/dist/utils/chunker.js +123 -0
- package/dist/utils/chunker.js.map +1 -0
- package/dist/utils/config.d.ts +48 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +154 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +28 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +88 -0
- package/postinstall.cjs +76 -0
- package/scripts/claude-wrapper.sh +122 -0
- package/scripts/doctor.sh +433 -0
- package/scripts/get-chat-id.sh +64 -0
- package/scripts/global-hooks.sh +39 -0
- package/scripts/install.sh +831 -0
- package/scripts/start-daemon.sh +49 -0
- package/scripts/telegram-hook.sh +449 -0
- package/scripts/uninstall.sh +261 -0
|
@@ -0,0 +1,584 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Manager
|
|
3
|
+
* Handles systemd (Linux) and launchd (macOS) service installation
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, mkdirSync, writeFileSync, unlinkSync, readFileSync } from 'fs';
|
|
6
|
+
import { join, dirname } from 'path';
|
|
7
|
+
import { homedir, platform } from 'os';
|
|
8
|
+
import { execSync } from 'child_process';
|
|
9
|
+
const SERVICE_NAME = 'claude-telegram-mirror';
|
|
10
|
+
// Paths
|
|
11
|
+
const SYSTEMD_USER_DIR = join(homedir(), '.config', 'systemd', 'user');
|
|
12
|
+
const SYSTEMD_SERVICE_FILE = join(SYSTEMD_USER_DIR, `${SERVICE_NAME}.service`);
|
|
13
|
+
const LAUNCHD_DIR = join(homedir(), 'Library', 'LaunchAgents');
|
|
14
|
+
const LAUNCHD_PLIST = join(LAUNCHD_DIR, `com.claude.${SERVICE_NAME}.plist`);
|
|
15
|
+
const ENV_FILE = join(homedir(), '.telegram-env');
|
|
16
|
+
const SYSTEMD_ENV_FILE = join(homedir(), '.config', SERVICE_NAME, 'env');
|
|
17
|
+
/**
|
|
18
|
+
* Parse environment file and return clean key=value pairs
|
|
19
|
+
* Handles: 'export KEY=value', 'KEY="value"', inline comments
|
|
20
|
+
*/
|
|
21
|
+
function parseEnvFile(filePath) {
|
|
22
|
+
const vars = new Map();
|
|
23
|
+
if (!existsSync(filePath))
|
|
24
|
+
return vars;
|
|
25
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
26
|
+
for (const line of content.split('\n')) {
|
|
27
|
+
// Skip empty lines and comments
|
|
28
|
+
const trimmed = line.trim();
|
|
29
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
30
|
+
continue;
|
|
31
|
+
// Remove 'export ' prefix
|
|
32
|
+
let cleanLine = trimmed.replace(/^export\s+/, '');
|
|
33
|
+
// Remove inline comments (but not # inside quotes)
|
|
34
|
+
const commentMatch = cleanLine.match(/^([^#"']*(?:"[^"]*"|'[^']*')?[^#]*)#/);
|
|
35
|
+
if (commentMatch) {
|
|
36
|
+
cleanLine = commentMatch[1].trim();
|
|
37
|
+
}
|
|
38
|
+
// Split key=value
|
|
39
|
+
const eqIndex = cleanLine.indexOf('=');
|
|
40
|
+
if (eqIndex === -1)
|
|
41
|
+
continue;
|
|
42
|
+
const key = cleanLine.substring(0, eqIndex).trim();
|
|
43
|
+
let value = cleanLine.substring(eqIndex + 1).trim();
|
|
44
|
+
// Remove surrounding quotes
|
|
45
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
46
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
47
|
+
value = value.slice(1, -1);
|
|
48
|
+
}
|
|
49
|
+
if (key)
|
|
50
|
+
vars.set(key, value);
|
|
51
|
+
}
|
|
52
|
+
return vars;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create systemd-compatible env file (no 'export', no inline comments)
|
|
56
|
+
*/
|
|
57
|
+
function createSystemdEnvFile() {
|
|
58
|
+
const envVars = parseEnvFile(ENV_FILE);
|
|
59
|
+
const configDir = join(homedir(), '.config', SERVICE_NAME);
|
|
60
|
+
// Ensure config directory exists
|
|
61
|
+
if (!existsSync(configDir)) {
|
|
62
|
+
mkdirSync(configDir, { recursive: true, mode: 0o700 });
|
|
63
|
+
}
|
|
64
|
+
// Write systemd-compatible env file
|
|
65
|
+
const lines = ['# Auto-generated from ~/.telegram-env for systemd'];
|
|
66
|
+
for (const [key, value] of envVars) {
|
|
67
|
+
// Quote values that contain spaces or special characters
|
|
68
|
+
if (value.includes(' ') || value.includes('$') || value.includes('`')) {
|
|
69
|
+
lines.push(`${key}="${value}"`);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
lines.push(`${key}=${value}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
writeFileSync(SYSTEMD_ENV_FILE, lines.join('\n') + '\n', { mode: 0o600 });
|
|
76
|
+
return SYSTEMD_ENV_FILE;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get the path to the Node.js binary
|
|
80
|
+
*/
|
|
81
|
+
function getNodePath() {
|
|
82
|
+
try {
|
|
83
|
+
return execSync('which node', { encoding: 'utf-8' }).trim();
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return '/usr/bin/node';
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get the package directory (where dist/cli.js lives)
|
|
91
|
+
*/
|
|
92
|
+
function getPackageDir() {
|
|
93
|
+
// This file is in src/service/manager.ts, so package root is two levels up
|
|
94
|
+
return join(dirname(new URL(import.meta.url).pathname), '..', '..');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Generate systemd service file content
|
|
98
|
+
*/
|
|
99
|
+
function generateSystemdService() {
|
|
100
|
+
const nodeDir = getNodePath();
|
|
101
|
+
const packageDir = getPackageDir();
|
|
102
|
+
const configDir = join(homedir(), '.config', SERVICE_NAME);
|
|
103
|
+
return `[Unit]
|
|
104
|
+
Description=Claude Code Telegram Mirror Bridge
|
|
105
|
+
Documentation=https://github.com/robertelee78/claude-telegram-mirror
|
|
106
|
+
After=network-online.target
|
|
107
|
+
Wants=network-online.target
|
|
108
|
+
|
|
109
|
+
[Service]
|
|
110
|
+
Type=simple
|
|
111
|
+
WorkingDirectory=${packageDir}
|
|
112
|
+
ExecStart=${nodeDir} ${join(packageDir, 'dist', 'cli.js')} start
|
|
113
|
+
EnvironmentFile=${SYSTEMD_ENV_FILE}
|
|
114
|
+
|
|
115
|
+
# Restart policy
|
|
116
|
+
Restart=on-failure
|
|
117
|
+
RestartSec=10s
|
|
118
|
+
StartLimitInterval=300s
|
|
119
|
+
StartLimitBurst=5
|
|
120
|
+
|
|
121
|
+
# Logging
|
|
122
|
+
StandardOutput=journal
|
|
123
|
+
StandardError=journal
|
|
124
|
+
SyslogIdentifier=${SERVICE_NAME}
|
|
125
|
+
|
|
126
|
+
# Security hardening
|
|
127
|
+
NoNewPrivileges=true
|
|
128
|
+
PrivateTmp=false
|
|
129
|
+
|
|
130
|
+
# Allow writes to config directory
|
|
131
|
+
ReadWritePaths=${configDir}
|
|
132
|
+
|
|
133
|
+
[Install]
|
|
134
|
+
WantedBy=default.target
|
|
135
|
+
`;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Escape a string for XML (plist) content
|
|
139
|
+
*/
|
|
140
|
+
function escapeXml(value) {
|
|
141
|
+
return value
|
|
142
|
+
.replace(/&/g, '&')
|
|
143
|
+
.replace(/</g, '<')
|
|
144
|
+
.replace(/>/g, '>')
|
|
145
|
+
.replace(/"/g, '"')
|
|
146
|
+
.replace(/'/g, ''');
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get the PATH that includes common Node.js install locations
|
|
150
|
+
*/
|
|
151
|
+
function getMacOSPath() {
|
|
152
|
+
const home = homedir();
|
|
153
|
+
const pathDirs = [
|
|
154
|
+
'/usr/local/bin',
|
|
155
|
+
'/usr/bin',
|
|
156
|
+
'/bin',
|
|
157
|
+
'/usr/sbin',
|
|
158
|
+
'/sbin',
|
|
159
|
+
join(home, '.nvm/versions/node') + '/*/bin', // nvm
|
|
160
|
+
'/opt/homebrew/bin', // Homebrew on Apple Silicon
|
|
161
|
+
'/usr/local/opt/node/bin', // Homebrew on Intel
|
|
162
|
+
join(home, '.local/bin'),
|
|
163
|
+
];
|
|
164
|
+
// Try to get current PATH and merge
|
|
165
|
+
const currentPath = process.env.PATH || '';
|
|
166
|
+
const allPaths = new Set([...pathDirs, ...currentPath.split(':')]);
|
|
167
|
+
return Array.from(allPaths).filter(Boolean).join(':');
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Generate launchd plist content for macOS
|
|
171
|
+
*/
|
|
172
|
+
function generateLaunchdPlist() {
|
|
173
|
+
const nodePath = getNodePath();
|
|
174
|
+
const packageDir = getPackageDir();
|
|
175
|
+
const home = homedir();
|
|
176
|
+
const configDir = join(home, '.config', SERVICE_NAME);
|
|
177
|
+
const logFile = join(configDir, 'daemon.log');
|
|
178
|
+
const errFile = join(configDir, 'daemon.err.log');
|
|
179
|
+
// Use parseEnvFile for proper env parsing (handles export, quotes, comments)
|
|
180
|
+
const envVars = parseEnvFile(ENV_FILE);
|
|
181
|
+
// Build environment variables section
|
|
182
|
+
const envLines = [];
|
|
183
|
+
// Always include essential environment variables
|
|
184
|
+
envLines.push(` <key>HOME</key>`);
|
|
185
|
+
envLines.push(` <string>${escapeXml(home)}</string>`);
|
|
186
|
+
envLines.push(` <key>PATH</key>`);
|
|
187
|
+
envLines.push(` <string>${escapeXml(getMacOSPath())}</string>`);
|
|
188
|
+
envLines.push(` <key>NODE_ENV</key>`);
|
|
189
|
+
envLines.push(` <string>production</string>`);
|
|
190
|
+
// Add user-defined environment variables from ~/.telegram-env
|
|
191
|
+
for (const [key, value] of envVars) {
|
|
192
|
+
// Skip if we already set it above
|
|
193
|
+
if (['HOME', 'PATH', 'NODE_ENV'].includes(key))
|
|
194
|
+
continue;
|
|
195
|
+
envLines.push(` <key>${escapeXml(key)}</key>`);
|
|
196
|
+
envLines.push(` <string>${escapeXml(value)}</string>`);
|
|
197
|
+
}
|
|
198
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
199
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
200
|
+
<plist version="1.0">
|
|
201
|
+
<dict>
|
|
202
|
+
<key>Label</key>
|
|
203
|
+
<string>com.claude.${SERVICE_NAME}</string>
|
|
204
|
+
|
|
205
|
+
<key>ProgramArguments</key>
|
|
206
|
+
<array>
|
|
207
|
+
<string>${escapeXml(nodePath)}</string>
|
|
208
|
+
<string>${escapeXml(join(packageDir, 'dist', 'cli.js'))}</string>
|
|
209
|
+
<string>start</string>
|
|
210
|
+
</array>
|
|
211
|
+
|
|
212
|
+
<key>WorkingDirectory</key>
|
|
213
|
+
<string>${escapeXml(packageDir)}</string>
|
|
214
|
+
|
|
215
|
+
<key>EnvironmentVariables</key>
|
|
216
|
+
<dict>
|
|
217
|
+
${envLines.join('\n')}
|
|
218
|
+
</dict>
|
|
219
|
+
|
|
220
|
+
<key>RunAtLoad</key>
|
|
221
|
+
<true/>
|
|
222
|
+
|
|
223
|
+
<key>KeepAlive</key>
|
|
224
|
+
<dict>
|
|
225
|
+
<key>SuccessfulExit</key>
|
|
226
|
+
<false/>
|
|
227
|
+
<key>Crashed</key>
|
|
228
|
+
<true/>
|
|
229
|
+
</dict>
|
|
230
|
+
|
|
231
|
+
<key>ThrottleInterval</key>
|
|
232
|
+
<integer>10</integer>
|
|
233
|
+
|
|
234
|
+
<key>StandardOutPath</key>
|
|
235
|
+
<string>${escapeXml(logFile)}</string>
|
|
236
|
+
|
|
237
|
+
<key>StandardErrorPath</key>
|
|
238
|
+
<string>${escapeXml(errFile)}</string>
|
|
239
|
+
</dict>
|
|
240
|
+
</plist>
|
|
241
|
+
`;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Check if running on Linux with systemd
|
|
245
|
+
*/
|
|
246
|
+
function hasSystemd() {
|
|
247
|
+
if (platform() !== 'linux')
|
|
248
|
+
return false;
|
|
249
|
+
try {
|
|
250
|
+
execSync('systemctl --version', { stdio: 'ignore' });
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Check if running on macOS
|
|
259
|
+
*/
|
|
260
|
+
function isMacOS() {
|
|
261
|
+
return platform() === 'darwin';
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Install the service
|
|
265
|
+
*/
|
|
266
|
+
export function installService() {
|
|
267
|
+
// Check for environment file
|
|
268
|
+
if (!existsSync(ENV_FILE)) {
|
|
269
|
+
return {
|
|
270
|
+
success: false,
|
|
271
|
+
message: `Environment file not found: ${ENV_FILE}\n\nCreate it with:\ncat > ${ENV_FILE} << 'EOF'\nTELEGRAM_BOT_TOKEN=your-token-here\nTELEGRAM_CHAT_ID=your-chat-id\nTELEGRAM_MIRROR=true\nEOF`
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
if (hasSystemd()) {
|
|
275
|
+
return installSystemdService();
|
|
276
|
+
}
|
|
277
|
+
else if (isMacOS()) {
|
|
278
|
+
return installLaunchdService();
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
return {
|
|
282
|
+
success: false,
|
|
283
|
+
message: 'Unsupported platform. Only Linux (systemd) and macOS (launchd) are supported.'
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Install systemd user service (Linux)
|
|
289
|
+
*/
|
|
290
|
+
function installSystemdService() {
|
|
291
|
+
try {
|
|
292
|
+
// Create systemd-compatible env file from ~/.telegram-env
|
|
293
|
+
const envFile = createSystemdEnvFile();
|
|
294
|
+
// Create systemd user directory
|
|
295
|
+
if (!existsSync(SYSTEMD_USER_DIR)) {
|
|
296
|
+
mkdirSync(SYSTEMD_USER_DIR, { recursive: true });
|
|
297
|
+
}
|
|
298
|
+
// Write service file
|
|
299
|
+
const serviceContent = generateSystemdService();
|
|
300
|
+
writeFileSync(SYSTEMD_SERVICE_FILE, serviceContent);
|
|
301
|
+
console.log(` Created env file: ${envFile}`);
|
|
302
|
+
// Reload systemd
|
|
303
|
+
execSync('systemctl --user daemon-reload', { stdio: 'inherit' });
|
|
304
|
+
// Enable service
|
|
305
|
+
execSync(`systemctl --user enable ${SERVICE_NAME}.service`, { stdio: 'inherit' });
|
|
306
|
+
return {
|
|
307
|
+
success: true,
|
|
308
|
+
message: `Service installed: ${SYSTEMD_SERVICE_FILE}
|
|
309
|
+
|
|
310
|
+
Commands:
|
|
311
|
+
Start: systemctl --user start ${SERVICE_NAME}
|
|
312
|
+
Stop: systemctl --user stop ${SERVICE_NAME}
|
|
313
|
+
Status: systemctl --user status ${SERVICE_NAME}
|
|
314
|
+
Logs: journalctl --user -u ${SERVICE_NAME} -f
|
|
315
|
+
|
|
316
|
+
To run without being logged in:
|
|
317
|
+
sudo loginctl enable-linger $USER`
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
return {
|
|
322
|
+
success: false,
|
|
323
|
+
message: `Failed to install systemd service: ${error}`
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Install launchd service (macOS)
|
|
329
|
+
*/
|
|
330
|
+
function installLaunchdService() {
|
|
331
|
+
try {
|
|
332
|
+
// Create LaunchAgents directory
|
|
333
|
+
if (!existsSync(LAUNCHD_DIR)) {
|
|
334
|
+
mkdirSync(LAUNCHD_DIR, { recursive: true });
|
|
335
|
+
}
|
|
336
|
+
// Ensure config directory exists for logs
|
|
337
|
+
const configDir = join(homedir(), '.config', SERVICE_NAME);
|
|
338
|
+
if (!existsSync(configDir)) {
|
|
339
|
+
mkdirSync(configDir, { recursive: true });
|
|
340
|
+
}
|
|
341
|
+
// Write plist file
|
|
342
|
+
const plistContent = generateLaunchdPlist();
|
|
343
|
+
writeFileSync(LAUNCHD_PLIST, plistContent);
|
|
344
|
+
return {
|
|
345
|
+
success: true,
|
|
346
|
+
message: `Service installed: ${LAUNCHD_PLIST}
|
|
347
|
+
|
|
348
|
+
Commands:
|
|
349
|
+
Load & Start: launchctl load ${LAUNCHD_PLIST}
|
|
350
|
+
Start: launchctl start com.claude.${SERVICE_NAME}
|
|
351
|
+
Stop: launchctl stop com.claude.${SERVICE_NAME}
|
|
352
|
+
Unload: launchctl unload ${LAUNCHD_PLIST}
|
|
353
|
+
Logs: tail -f ~/.config/${SERVICE_NAME}/daemon.log`
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
return {
|
|
358
|
+
success: false,
|
|
359
|
+
message: `Failed to install launchd service: ${error}`
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Uninstall the service
|
|
365
|
+
*/
|
|
366
|
+
export function uninstallService() {
|
|
367
|
+
if (hasSystemd()) {
|
|
368
|
+
return uninstallSystemdService();
|
|
369
|
+
}
|
|
370
|
+
else if (isMacOS()) {
|
|
371
|
+
return uninstallLaunchdService();
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
return {
|
|
375
|
+
success: false,
|
|
376
|
+
message: 'Unsupported platform.'
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Uninstall systemd service
|
|
382
|
+
*/
|
|
383
|
+
function uninstallSystemdService() {
|
|
384
|
+
try {
|
|
385
|
+
// Stop and disable service
|
|
386
|
+
try {
|
|
387
|
+
execSync(`systemctl --user stop ${SERVICE_NAME}.service`, { stdio: 'ignore' });
|
|
388
|
+
execSync(`systemctl --user disable ${SERVICE_NAME}.service`, { stdio: 'ignore' });
|
|
389
|
+
}
|
|
390
|
+
catch {
|
|
391
|
+
// Service might not be running/enabled
|
|
392
|
+
}
|
|
393
|
+
// Remove service file
|
|
394
|
+
if (existsSync(SYSTEMD_SERVICE_FILE)) {
|
|
395
|
+
unlinkSync(SYSTEMD_SERVICE_FILE);
|
|
396
|
+
}
|
|
397
|
+
// Reload systemd
|
|
398
|
+
execSync('systemctl --user daemon-reload', { stdio: 'ignore' });
|
|
399
|
+
return {
|
|
400
|
+
success: true,
|
|
401
|
+
message: 'Service uninstalled successfully.'
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
catch (error) {
|
|
405
|
+
return {
|
|
406
|
+
success: false,
|
|
407
|
+
message: `Failed to uninstall service: ${error}`
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Uninstall launchd service
|
|
413
|
+
*/
|
|
414
|
+
function uninstallLaunchdService() {
|
|
415
|
+
try {
|
|
416
|
+
// Unload service
|
|
417
|
+
try {
|
|
418
|
+
execSync(`launchctl unload ${LAUNCHD_PLIST}`, { stdio: 'ignore' });
|
|
419
|
+
}
|
|
420
|
+
catch {
|
|
421
|
+
// Service might not be loaded
|
|
422
|
+
}
|
|
423
|
+
// Remove plist file
|
|
424
|
+
if (existsSync(LAUNCHD_PLIST)) {
|
|
425
|
+
unlinkSync(LAUNCHD_PLIST);
|
|
426
|
+
}
|
|
427
|
+
return {
|
|
428
|
+
success: true,
|
|
429
|
+
message: 'Service uninstalled successfully.'
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
catch (error) {
|
|
433
|
+
return {
|
|
434
|
+
success: false,
|
|
435
|
+
message: `Failed to uninstall service: ${error}`
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Get service status
|
|
441
|
+
*/
|
|
442
|
+
export function getServiceStatus() {
|
|
443
|
+
if (hasSystemd()) {
|
|
444
|
+
return getSystemdStatus();
|
|
445
|
+
}
|
|
446
|
+
else if (isMacOS()) {
|
|
447
|
+
return getLaunchdStatus();
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
return {
|
|
451
|
+
running: false,
|
|
452
|
+
enabled: false,
|
|
453
|
+
info: 'Unsupported platform'
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Get systemd service status
|
|
459
|
+
*/
|
|
460
|
+
function getSystemdStatus() {
|
|
461
|
+
let running = false;
|
|
462
|
+
let enabled = false;
|
|
463
|
+
let info = '';
|
|
464
|
+
try {
|
|
465
|
+
const isActive = execSync(`systemctl --user is-active ${SERVICE_NAME}.service 2>/dev/null || true`, { encoding: 'utf-8' }).trim();
|
|
466
|
+
running = isActive === 'active';
|
|
467
|
+
}
|
|
468
|
+
catch {
|
|
469
|
+
running = false;
|
|
470
|
+
}
|
|
471
|
+
try {
|
|
472
|
+
const isEnabled = execSync(`systemctl --user is-enabled ${SERVICE_NAME}.service 2>/dev/null || true`, { encoding: 'utf-8' }).trim();
|
|
473
|
+
enabled = isEnabled === 'enabled';
|
|
474
|
+
}
|
|
475
|
+
catch {
|
|
476
|
+
enabled = false;
|
|
477
|
+
}
|
|
478
|
+
if (!existsSync(SYSTEMD_SERVICE_FILE)) {
|
|
479
|
+
info = 'Service not installed';
|
|
480
|
+
}
|
|
481
|
+
else {
|
|
482
|
+
info = `Service file: ${SYSTEMD_SERVICE_FILE}`;
|
|
483
|
+
}
|
|
484
|
+
return { running, enabled, info };
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Get launchd service status
|
|
488
|
+
*/
|
|
489
|
+
function getLaunchdStatus() {
|
|
490
|
+
let running = false;
|
|
491
|
+
const enabled = existsSync(LAUNCHD_PLIST);
|
|
492
|
+
let info = '';
|
|
493
|
+
try {
|
|
494
|
+
const list = execSync('launchctl list 2>/dev/null || true', { encoding: 'utf-8' });
|
|
495
|
+
running = list.includes(`com.claude.${SERVICE_NAME}`);
|
|
496
|
+
}
|
|
497
|
+
catch {
|
|
498
|
+
running = false;
|
|
499
|
+
}
|
|
500
|
+
if (!enabled) {
|
|
501
|
+
info = 'Service not installed';
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
info = `Plist file: ${LAUNCHD_PLIST}`;
|
|
505
|
+
}
|
|
506
|
+
return { running, enabled, info };
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Start the service
|
|
510
|
+
*/
|
|
511
|
+
export function startService() {
|
|
512
|
+
if (hasSystemd()) {
|
|
513
|
+
try {
|
|
514
|
+
execSync(`systemctl --user start ${SERVICE_NAME}.service`, { stdio: 'inherit' });
|
|
515
|
+
return { success: true, message: 'Service started.' };
|
|
516
|
+
}
|
|
517
|
+
catch (error) {
|
|
518
|
+
return { success: false, message: `Failed to start: ${error}` };
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
else if (isMacOS()) {
|
|
522
|
+
try {
|
|
523
|
+
// Load if not loaded, then start
|
|
524
|
+
try {
|
|
525
|
+
execSync(`launchctl load ${LAUNCHD_PLIST}`, { stdio: 'ignore' });
|
|
526
|
+
}
|
|
527
|
+
catch {
|
|
528
|
+
// Already loaded
|
|
529
|
+
}
|
|
530
|
+
execSync(`launchctl start com.claude.${SERVICE_NAME}`, { stdio: 'inherit' });
|
|
531
|
+
return { success: true, message: 'Service started.' };
|
|
532
|
+
}
|
|
533
|
+
catch (error) {
|
|
534
|
+
return { success: false, message: `Failed to start: ${error}` };
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
return { success: false, message: 'Unsupported platform.' };
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Stop the service
|
|
541
|
+
*/
|
|
542
|
+
export function stopService() {
|
|
543
|
+
if (hasSystemd()) {
|
|
544
|
+
try {
|
|
545
|
+
execSync(`systemctl --user stop ${SERVICE_NAME}.service`, { stdio: 'inherit' });
|
|
546
|
+
return { success: true, message: 'Service stopped.' };
|
|
547
|
+
}
|
|
548
|
+
catch (error) {
|
|
549
|
+
return { success: false, message: `Failed to stop: ${error}` };
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
else if (isMacOS()) {
|
|
553
|
+
try {
|
|
554
|
+
execSync(`launchctl stop com.claude.${SERVICE_NAME}`, { stdio: 'inherit' });
|
|
555
|
+
return { success: true, message: 'Service stopped.' };
|
|
556
|
+
}
|
|
557
|
+
catch (error) {
|
|
558
|
+
return { success: false, message: `Failed to stop: ${error}` };
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
return { success: false, message: 'Unsupported platform.' };
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Restart the service
|
|
565
|
+
*/
|
|
566
|
+
export function restartService() {
|
|
567
|
+
if (hasSystemd()) {
|
|
568
|
+
try {
|
|
569
|
+
execSync(`systemctl --user restart ${SERVICE_NAME}.service`, { stdio: 'inherit' });
|
|
570
|
+
return { success: true, message: 'Service restarted.' };
|
|
571
|
+
}
|
|
572
|
+
catch (error) {
|
|
573
|
+
return { success: false, message: `Failed to restart: ${error}` };
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
else if (isMacOS()) {
|
|
577
|
+
const stopResult = stopService();
|
|
578
|
+
if (!stopResult.success)
|
|
579
|
+
return stopResult;
|
|
580
|
+
return startService();
|
|
581
|
+
}
|
|
582
|
+
return { success: false, message: 'Unsupported platform.' };
|
|
583
|
+
}
|
|
584
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/service/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/service/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsGH;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA6L9C;AAED,eAAe,QAAQ,CAAC"}
|