@cogitator-ai/cli 0.3.16 → 0.5.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 +160 -511
- package/dist/commands/assistant.d.ts +13 -0
- package/dist/commands/assistant.d.ts.map +1 -1
- package/dist/commands/assistant.js +64 -58
- package/dist/commands/assistant.js.map +1 -1
- package/dist/commands/build.d.ts +2 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +115 -60
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +223 -262
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +80 -42
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/init.d.ts +51 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +349 -265
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/logs.d.ts +1 -0
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +8 -4
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/models.d.ts +1 -1
- package/dist/commands/models.d.ts.map +1 -1
- package/dist/commands/models.js +83 -93
- package/dist/commands/models.js.map +1 -1
- package/dist/commands/run.d.ts +4 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +156 -131
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/skill.d.ts +17 -0
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +203 -81
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +20 -24
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/up.d.ts +4 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +182 -130
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/wizard.d.ts +6 -0
- package/dist/commands/wizard.d.ts.map +1 -1
- package/dist/commands/wizard.js +307 -271
- package/dist/commands/wizard.js.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/daemon.d.ts +37 -0
- package/dist/utils/daemon.d.ts.map +1 -0
- package/dist/utils/daemon.js +194 -0
- package/dist/utils/daemon.js.map +1 -0
- package/dist/utils/docker.d.ts +9 -0
- package/dist/utils/docker.d.ts.map +1 -1
- package/dist/utils/docker.js +67 -12
- package/dist/utils/docker.js.map +1 -1
- package/dist/utils/env.d.ts +7 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +41 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/module-loader.d.ts +5 -0
- package/dist/utils/module-loader.d.ts.map +1 -0
- package/dist/utils/module-loader.js +52 -0
- package/dist/utils/module-loader.js.map +1 -0
- package/dist/utils/ollama.d.ts +20 -0
- package/dist/utils/ollama.d.ts.map +1 -0
- package/dist/utils/ollama.js +111 -0
- package/dist/utils/ollama.js.map +1 -0
- package/dist/utils/provider-models.d.ts +13 -0
- package/dist/utils/provider-models.d.ts.map +1 -0
- package/dist/utils/provider-models.js +81 -0
- package/dist/utils/provider-models.js.map +1 -0
- package/package.json +21 -19
package/dist/commands/daemon.js
CHANGED
|
@@ -1,52 +1,137 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
1
|
+
import { Command, InvalidArgumentError } from 'commander';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
-
import { existsSync,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { closeSync, existsSync, mkdirSync, openSync, realpathSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
4
|
+
import { homedir } from 'node:os';
|
|
5
|
+
import { dirname, resolve } from 'node:path';
|
|
6
|
+
import { execFileSync, spawn } from 'node:child_process';
|
|
6
7
|
import { log } from '../utils/logger.js';
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
import { DAEMON_LABEL, SYSTEMD_UNIT, buildLaunchdPlist, buildSystemdUnit, isDaemonProcess, isProcessAlive, readPidRecord, resolveDaemonLaunch, serializePidRecord, } from '../utils/daemon.js';
|
|
9
|
+
const STOP_POLL_MS = 500;
|
|
10
|
+
const STOP_ATTEMPTS = 20;
|
|
11
|
+
function dataDir() {
|
|
12
|
+
return resolve(process.cwd(), '.cogitator');
|
|
13
|
+
}
|
|
14
|
+
function pidFile() {
|
|
15
|
+
return resolve(dataDir(), 'daemon.pid');
|
|
16
|
+
}
|
|
17
|
+
function logFile() {
|
|
18
|
+
return resolve(dataDir(), 'daemon.log');
|
|
19
|
+
}
|
|
20
|
+
function removePidFile() {
|
|
21
|
+
if (existsSync(pidFile()))
|
|
22
|
+
unlinkSync(pidFile());
|
|
23
|
+
}
|
|
24
|
+
function cliEntry() {
|
|
25
|
+
const entry = process.argv[1];
|
|
26
|
+
if (!entry)
|
|
27
|
+
throw new Error('Cannot determine the cogitator CLI entry point');
|
|
28
|
+
try {
|
|
29
|
+
return realpathSync(entry);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return resolve(entry);
|
|
13
33
|
}
|
|
14
34
|
}
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
return
|
|
18
|
-
|
|
19
|
-
|
|
35
|
+
function resolveLaunch(config) {
|
|
36
|
+
try {
|
|
37
|
+
return resolveDaemonLaunch({
|
|
38
|
+
cwd: process.cwd(),
|
|
39
|
+
nodePath: process.execPath,
|
|
40
|
+
cliEntry: cliEntry(),
|
|
41
|
+
config,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
log.error(error instanceof Error ? error.message : String(error));
|
|
46
|
+
log.dim('Run "cogitator init" or "cogitator wizard" to create a project first');
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function runningDaemon() {
|
|
51
|
+
const record = readPidRecord(pidFile());
|
|
52
|
+
if (!record)
|
|
20
53
|
return null;
|
|
21
|
-
return
|
|
54
|
+
return isDaemonProcess(record) ? record : null;
|
|
22
55
|
}
|
|
23
|
-
function
|
|
56
|
+
function sendSignal(pid, signal) {
|
|
24
57
|
try {
|
|
25
|
-
process.kill(pid,
|
|
58
|
+
process.kill(pid, signal);
|
|
26
59
|
return true;
|
|
27
60
|
}
|
|
28
61
|
catch {
|
|
29
62
|
return false;
|
|
30
63
|
}
|
|
31
64
|
}
|
|
32
|
-
function
|
|
65
|
+
async function stopDaemon(record) {
|
|
66
|
+
sendSignal(record.pid, 'SIGTERM');
|
|
67
|
+
for (let attempt = 0; attempt < STOP_ATTEMPTS; attempt++) {
|
|
68
|
+
await new Promise((r) => setTimeout(r, STOP_POLL_MS));
|
|
69
|
+
if (!isProcessAlive(record.pid)) {
|
|
70
|
+
removePidFile();
|
|
71
|
+
return 'stopped';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
sendSignal(record.pid, 'SIGKILL');
|
|
75
|
+
removePidFile();
|
|
76
|
+
return 'killed';
|
|
77
|
+
}
|
|
78
|
+
function startDaemon(config) {
|
|
79
|
+
const existing = runningDaemon();
|
|
80
|
+
if (existing) {
|
|
81
|
+
log.warn(`Daemon already running (PID: ${existing.pid})`);
|
|
82
|
+
log.dim('Use "cogitator daemon restart" to restart');
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const launch = resolveLaunch(config);
|
|
86
|
+
mkdirSync(dataDir(), { recursive: true });
|
|
87
|
+
const out = openSync(logFile(), 'a');
|
|
88
|
+
let pid;
|
|
33
89
|
try {
|
|
34
|
-
const
|
|
35
|
-
|
|
90
|
+
const child = spawn(launch.command, launch.args, {
|
|
91
|
+
detached: true,
|
|
92
|
+
stdio: ['ignore', out, out],
|
|
93
|
+
cwd: process.cwd(),
|
|
94
|
+
env: { ...process.env, COGITATOR_DAEMON: '1' },
|
|
95
|
+
});
|
|
96
|
+
child.on('error', (error) => {
|
|
97
|
+
log.error(`Failed to start daemon: ${error.message}`);
|
|
98
|
+
removePidFile();
|
|
99
|
+
process.exitCode = 1;
|
|
100
|
+
});
|
|
101
|
+
pid = child.pid;
|
|
102
|
+
child.unref();
|
|
36
103
|
}
|
|
37
|
-
|
|
38
|
-
|
|
104
|
+
finally {
|
|
105
|
+
closeSync(out);
|
|
106
|
+
}
|
|
107
|
+
if (!pid) {
|
|
108
|
+
log.error('Failed to start daemon');
|
|
109
|
+
process.exit(1);
|
|
39
110
|
}
|
|
111
|
+
writeFileSync(pidFile(), serializePidRecord({ pid, script: launch.args[0] }));
|
|
112
|
+
log.success(`Daemon started (PID: ${pid})`);
|
|
113
|
+
log.dim(`Running ${launch.description}`);
|
|
114
|
+
log.dim(`Logs: ${logFile()}`);
|
|
115
|
+
}
|
|
116
|
+
function parseLineCount(value) {
|
|
117
|
+
if (/^\d+$/.test(value))
|
|
118
|
+
return value;
|
|
119
|
+
throw new InvalidArgumentError('Expected a non-negative number of lines.');
|
|
40
120
|
}
|
|
41
|
-
function
|
|
121
|
+
function formatRss(kb) {
|
|
122
|
+
if (kb < 1024)
|
|
123
|
+
return `${kb} KB`;
|
|
124
|
+
return `${(kb / 1024).toFixed(0)} MB`;
|
|
125
|
+
}
|
|
126
|
+
function psField(pid, field) {
|
|
127
|
+
if (process.platform === 'win32')
|
|
128
|
+
return null;
|
|
42
129
|
try {
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return `${kb} KB`;
|
|
49
|
-
return `${(kb / 1024).toFixed(0)} MB`;
|
|
130
|
+
const output = execFileSync('ps', ['-o', `${field}=`, '-p', String(pid)], {
|
|
131
|
+
encoding: 'utf-8',
|
|
132
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
133
|
+
}).trim();
|
|
134
|
+
return output || null;
|
|
50
135
|
}
|
|
51
136
|
catch {
|
|
52
137
|
return null;
|
|
@@ -56,330 +141,206 @@ export const daemonCommand = new Command('daemon').description('Manage backgroun
|
|
|
56
141
|
daemonCommand
|
|
57
142
|
.command('start')
|
|
58
143
|
.description('Start the assistant as a background daemon')
|
|
59
|
-
.option('-c, --config <path>', '
|
|
60
|
-
.action(
|
|
61
|
-
|
|
62
|
-
if (existingPid && isRunning(existingPid)) {
|
|
63
|
-
log.warn(`Daemon already running (PID: ${existingPid})`);
|
|
64
|
-
log.dim('Use "cogitator daemon restart" to restart');
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
const configPath = resolve(process.cwd(), options.config);
|
|
68
|
-
if (!existsSync(configPath)) {
|
|
69
|
-
log.error(`Config not found: ${configPath}`);
|
|
70
|
-
log.dim('Run "cogitator init" to create a project first');
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
ensureDataDir();
|
|
74
|
-
const bundled = resolve(process.cwd(), 'dist/cogitator.mjs');
|
|
75
|
-
const entryPoint = existsSync(bundled) ? bundled : configPath;
|
|
76
|
-
const useTsx = entryPoint.endsWith('.ts');
|
|
77
|
-
const nodeArgs = [];
|
|
78
|
-
if (useTsx) {
|
|
79
|
-
nodeArgs.push('--import', 'tsx');
|
|
80
|
-
}
|
|
81
|
-
const child = spawn('node', [...nodeArgs, entryPoint], {
|
|
82
|
-
detached: true,
|
|
83
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
84
|
-
cwd: process.cwd(),
|
|
85
|
-
env: { ...process.env, COGITATOR_DAEMON: '1' },
|
|
86
|
-
});
|
|
87
|
-
if (child.stdout && child.stderr) {
|
|
88
|
-
const { createWriteStream } = await import('node:fs');
|
|
89
|
-
const logStream = createWriteStream(LOG_FILE, { flags: 'a' });
|
|
90
|
-
child.stdout.pipe(logStream);
|
|
91
|
-
child.stderr.pipe(logStream);
|
|
92
|
-
}
|
|
93
|
-
child.unref();
|
|
94
|
-
if (child.pid) {
|
|
95
|
-
writeFileSync(PID_FILE, String(child.pid));
|
|
96
|
-
log.success(`Daemon started (PID: ${child.pid})`);
|
|
97
|
-
if (useTsx) {
|
|
98
|
-
log.dim('Using tsx for TypeScript support');
|
|
99
|
-
}
|
|
100
|
-
if (entryPoint === bundled) {
|
|
101
|
-
log.dim('Using bundled version from dist/');
|
|
102
|
-
}
|
|
103
|
-
log.dim(`Logs: ${LOG_FILE}`);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
log.error('Failed to start daemon');
|
|
107
|
-
process.exit(1);
|
|
108
|
-
}
|
|
144
|
+
.option('-c, --config <path>', 'Entry to run: cogitator.yml, a gateway module, or a bundle (default: auto-detect)')
|
|
145
|
+
.action((options) => {
|
|
146
|
+
startDaemon(options.config);
|
|
109
147
|
});
|
|
110
148
|
daemonCommand
|
|
111
149
|
.command('stop')
|
|
112
150
|
.description('Stop the running daemon')
|
|
113
|
-
.action(() => {
|
|
114
|
-
const
|
|
115
|
-
if (!
|
|
151
|
+
.action(async () => {
|
|
152
|
+
const record = runningDaemon();
|
|
153
|
+
if (!record) {
|
|
116
154
|
log.warn('Daemon is not running');
|
|
117
|
-
|
|
118
|
-
unlinkSync(PID_FILE);
|
|
155
|
+
removePidFile();
|
|
119
156
|
return;
|
|
120
157
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
unlinkSync(PID_FILE);
|
|
130
|
-
log.success('Daemon stopped');
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
if (attempts >= 10) {
|
|
134
|
-
clearInterval(check);
|
|
135
|
-
log.warn('Daemon did not stop gracefully, sending SIGKILL');
|
|
136
|
-
process.kill(pid, 'SIGKILL');
|
|
137
|
-
if (existsSync(PID_FILE))
|
|
138
|
-
unlinkSync(PID_FILE);
|
|
139
|
-
log.success('Daemon killed');
|
|
140
|
-
}
|
|
141
|
-
}, 500);
|
|
158
|
+
log.step(`Sending SIGTERM to daemon (PID: ${record.pid})`);
|
|
159
|
+
const result = await stopDaemon(record);
|
|
160
|
+
if (result === 'stopped') {
|
|
161
|
+
log.success('Daemon stopped');
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
log.warn('Daemon did not stop gracefully and was killed');
|
|
165
|
+
}
|
|
142
166
|
});
|
|
143
167
|
daemonCommand
|
|
144
168
|
.command('restart')
|
|
145
169
|
.description('Restart the daemon')
|
|
146
|
-
.option('-c, --config <path>', '
|
|
170
|
+
.option('-c, --config <path>', 'Entry to run: cogitator.yml, a gateway module, or a bundle (default: auto-detect)')
|
|
147
171
|
.action(async (options) => {
|
|
148
|
-
const
|
|
149
|
-
if (
|
|
150
|
-
process.kill(pid, 'SIGTERM');
|
|
172
|
+
const record = runningDaemon();
|
|
173
|
+
if (record) {
|
|
151
174
|
log.step('Stopping current daemon...');
|
|
152
|
-
await
|
|
153
|
-
let attempts = 0;
|
|
154
|
-
const check = setInterval(() => {
|
|
155
|
-
attempts++;
|
|
156
|
-
if (!isRunning(pid) || attempts >= 10) {
|
|
157
|
-
clearInterval(check);
|
|
158
|
-
if (attempts >= 10) {
|
|
159
|
-
process.kill(pid, 'SIGKILL');
|
|
160
|
-
}
|
|
161
|
-
resolve();
|
|
162
|
-
}
|
|
163
|
-
}, 500);
|
|
164
|
-
});
|
|
165
|
-
if (existsSync(PID_FILE))
|
|
166
|
-
unlinkSync(PID_FILE);
|
|
175
|
+
await stopDaemon(record);
|
|
167
176
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
if (startCmd) {
|
|
171
|
-
await startCmd.parseAsync(['node', 'start', '-c', options.config]);
|
|
177
|
+
else {
|
|
178
|
+
removePidFile();
|
|
172
179
|
}
|
|
180
|
+
log.step('Starting daemon...');
|
|
181
|
+
startDaemon(options.config);
|
|
173
182
|
});
|
|
174
183
|
daemonCommand
|
|
175
184
|
.command('status')
|
|
176
185
|
.description('Show daemon status')
|
|
177
186
|
.action(() => {
|
|
178
|
-
const
|
|
179
|
-
const running =
|
|
187
|
+
const record = readPidRecord(pidFile());
|
|
188
|
+
const running = record ? isDaemonProcess(record) : false;
|
|
180
189
|
console.log();
|
|
181
190
|
console.log(chalk.cyan(' ╭──────────────────────────────────────────╮'));
|
|
182
|
-
console.log(chalk.cyan(' │ ') +
|
|
183
|
-
chalk.bold('Cogitator Daemon') +
|
|
184
|
-
chalk.cyan(' │'));
|
|
191
|
+
console.log(chalk.cyan(' │ ') + chalk.bold('Cogitator Daemon') + chalk.cyan(' │'));
|
|
185
192
|
console.log(chalk.cyan(' ╰──────────────────────────────────────────╯'));
|
|
186
193
|
console.log();
|
|
187
|
-
if (running &&
|
|
188
|
-
const
|
|
189
|
-
const memory = getProcessMemory(pid) ?? 'unknown';
|
|
194
|
+
if (running && record) {
|
|
195
|
+
const rss = Number(psField(record.pid, 'rss'));
|
|
190
196
|
console.log(` ${chalk.bold('Status')} ${chalk.green('● running')}`);
|
|
191
|
-
console.log(` ${chalk.bold('PID')} ${pid}`);
|
|
192
|
-
console.log(` ${chalk.bold('Uptime')} ${
|
|
193
|
-
console.log(` ${chalk.bold('Memory')} ${
|
|
197
|
+
console.log(` ${chalk.bold('PID')} ${record.pid}`);
|
|
198
|
+
console.log(` ${chalk.bold('Uptime')} ${psField(record.pid, 'etime') ?? 'unknown'}`);
|
|
199
|
+
console.log(` ${chalk.bold('Memory')} ${Number.isFinite(rss) && rss > 0 ? formatRss(rss) : 'unknown'}`);
|
|
194
200
|
}
|
|
195
201
|
else {
|
|
196
202
|
console.log(` ${chalk.bold('Status')} ${chalk.red('● stopped')}`);
|
|
197
|
-
if (
|
|
198
|
-
log.dim(` Stale PID file found (${pid}), cleaning up`);
|
|
199
|
-
|
|
200
|
-
unlinkSync(PID_FILE);
|
|
203
|
+
if (record) {
|
|
204
|
+
log.dim(` Stale PID file found (${record.pid}), cleaning up`);
|
|
205
|
+
removePidFile();
|
|
201
206
|
}
|
|
202
207
|
}
|
|
203
|
-
console.log(` ${chalk.bold('Logs')} ${
|
|
204
|
-
console.log(` ${chalk.bold('PID file')} ${
|
|
208
|
+
console.log(` ${chalk.bold('Logs')} ${logFile()}`);
|
|
209
|
+
console.log(` ${chalk.bold('PID file')} ${pidFile()}`);
|
|
205
210
|
console.log();
|
|
206
211
|
});
|
|
207
212
|
daemonCommand
|
|
208
213
|
.command('logs')
|
|
209
214
|
.description('Tail daemon logs')
|
|
210
|
-
.option('-n, --lines <number>', 'Number of lines to show', '50')
|
|
215
|
+
.option('-n, --lines <number>', 'Number of lines to show', parseLineCount, '50')
|
|
211
216
|
.option('-f, --follow', 'Follow log output', false)
|
|
212
|
-
.option('--json', 'Output raw JSON logs')
|
|
213
217
|
.action((options) => {
|
|
214
|
-
if (!existsSync(
|
|
218
|
+
if (!existsSync(logFile())) {
|
|
215
219
|
log.warn('No log file found');
|
|
216
|
-
log.dim(`Expected at: ${
|
|
220
|
+
log.dim(`Expected at: ${logFile()}`);
|
|
217
221
|
return;
|
|
218
222
|
}
|
|
219
223
|
const args = ['-n', options.lines];
|
|
220
224
|
if (options.follow)
|
|
221
225
|
args.push('-f');
|
|
222
|
-
args.push(
|
|
226
|
+
args.push(logFile());
|
|
223
227
|
const tail = spawn('tail', args, { stdio: 'inherit' });
|
|
228
|
+
tail.on('error', (error) => {
|
|
229
|
+
log.error(`Failed to run tail: ${error.message}`);
|
|
230
|
+
process.exit(1);
|
|
231
|
+
});
|
|
224
232
|
tail.on('exit', (code) => process.exit(code ?? 0));
|
|
225
233
|
});
|
|
226
234
|
daemonCommand
|
|
227
235
|
.command('install')
|
|
228
|
-
.description('Install as
|
|
229
|
-
.
|
|
230
|
-
|
|
231
|
-
if (platform
|
|
232
|
-
|
|
236
|
+
.description('Install as a user service (launchd on macOS, systemd on Linux)')
|
|
237
|
+
.option('-c, --config <path>', 'Entry to run: cogitator.yml, a gateway module, or a bundle (default: auto-detect)')
|
|
238
|
+
.action((options) => {
|
|
239
|
+
if (process.platform !== 'darwin' && process.platform !== 'linux') {
|
|
240
|
+
log.error(`Unsupported platform: ${process.platform}`);
|
|
241
|
+
log.dim('Manual setup required for Windows');
|
|
242
|
+
process.exit(1);
|
|
233
243
|
}
|
|
234
|
-
|
|
235
|
-
|
|
244
|
+
const launch = resolveLaunch(options.config);
|
|
245
|
+
mkdirSync(dataDir(), { recursive: true });
|
|
246
|
+
const definition = {
|
|
247
|
+
launch,
|
|
248
|
+
cwd: process.cwd(),
|
|
249
|
+
logFile: logFile(),
|
|
250
|
+
path: process.env.PATH,
|
|
251
|
+
};
|
|
252
|
+
if (process.platform === 'darwin') {
|
|
253
|
+
installLaunchd(buildLaunchdPlist(definition));
|
|
236
254
|
}
|
|
237
255
|
else {
|
|
238
|
-
|
|
239
|
-
log.dim('Manual setup required for Windows');
|
|
256
|
+
installSystemd(buildSystemdUnit(definition));
|
|
240
257
|
}
|
|
241
258
|
});
|
|
242
259
|
daemonCommand
|
|
243
260
|
.command('uninstall')
|
|
244
|
-
.description('Remove
|
|
261
|
+
.description('Remove the user service')
|
|
245
262
|
.action(() => {
|
|
246
|
-
|
|
247
|
-
if (platform === 'darwin') {
|
|
263
|
+
if (process.platform === 'darwin') {
|
|
248
264
|
uninstallLaunchd();
|
|
249
265
|
}
|
|
250
|
-
else if (platform === 'linux') {
|
|
266
|
+
else if (process.platform === 'linux') {
|
|
251
267
|
uninstallSystemd();
|
|
252
268
|
}
|
|
253
269
|
else {
|
|
254
|
-
log.error(`Unsupported platform: ${platform}`);
|
|
270
|
+
log.error(`Unsupported platform: ${process.platform}`);
|
|
271
|
+
process.exit(1);
|
|
255
272
|
}
|
|
256
273
|
});
|
|
257
|
-
function
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
<plist version="1.0">
|
|
268
|
-
<dict>
|
|
269
|
-
<key>Label</key>
|
|
270
|
-
<string>${label}</string>
|
|
271
|
-
<key>ProgramArguments</key>
|
|
272
|
-
<array>
|
|
273
|
-
<string>${nodePath}</string>
|
|
274
|
-
<string>${entryPoint}</string>
|
|
275
|
-
</array>
|
|
276
|
-
<key>WorkingDirectory</key>
|
|
277
|
-
<string>${cwd}</string>
|
|
278
|
-
<key>RunAtLoad</key>
|
|
279
|
-
<true/>
|
|
280
|
-
<key>KeepAlive</key>
|
|
281
|
-
<true/>
|
|
282
|
-
<key>StandardOutPath</key>
|
|
283
|
-
<string>${LOG_FILE}</string>
|
|
284
|
-
<key>StandardErrorPath</key>
|
|
285
|
-
<string>${LOG_FILE}</string>
|
|
286
|
-
<key>EnvironmentVariables</key>
|
|
287
|
-
<dict>
|
|
288
|
-
<key>COGITATOR_DAEMON</key>
|
|
289
|
-
<string>1</string>
|
|
290
|
-
</dict>
|
|
291
|
-
</dict>
|
|
292
|
-
</plist>`;
|
|
293
|
-
const plistDir = dirname(plistPath);
|
|
294
|
-
if (!existsSync(plistDir)) {
|
|
295
|
-
mkdirSync(plistDir, { recursive: true });
|
|
274
|
+
function launchdPlistPath() {
|
|
275
|
+
return resolve(homedir(), 'Library/LaunchAgents', `${DAEMON_LABEL}.plist`);
|
|
276
|
+
}
|
|
277
|
+
function systemdUnitPath() {
|
|
278
|
+
return resolve(homedir(), '.config/systemd/user', `${SYSTEMD_UNIT}.service`);
|
|
279
|
+
}
|
|
280
|
+
function tryExec(command, args) {
|
|
281
|
+
try {
|
|
282
|
+
execFileSync(command, args, { stdio: 'pipe' });
|
|
283
|
+
return true;
|
|
296
284
|
}
|
|
285
|
+
catch {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
function installLaunchd(plist) {
|
|
290
|
+
const plistPath = launchdPlistPath();
|
|
291
|
+
mkdirSync(dirname(plistPath), { recursive: true });
|
|
292
|
+
if (existsSync(plistPath))
|
|
293
|
+
tryExec('launchctl', ['unload', plistPath]);
|
|
297
294
|
writeFileSync(plistPath, plist);
|
|
298
295
|
log.success(`Plist written to ${plistPath}`);
|
|
299
|
-
|
|
300
|
-
execSync(`launchctl load ${plistPath}`);
|
|
296
|
+
if (tryExec('launchctl', ['load', '-w', plistPath])) {
|
|
301
297
|
log.success('Service installed and loaded');
|
|
302
|
-
log.dim(`Manage: launchctl start/stop ${
|
|
298
|
+
log.dim(`Manage: launchctl start/stop ${DAEMON_LABEL}`);
|
|
299
|
+
log.dim(`Logs: ${logFile()}`);
|
|
303
300
|
}
|
|
304
|
-
|
|
301
|
+
else {
|
|
305
302
|
log.warn('Failed to load service. Load manually:');
|
|
306
|
-
log.dim(` launchctl load ${plistPath}`);
|
|
303
|
+
log.dim(` launchctl load -w "${plistPath}"`);
|
|
307
304
|
}
|
|
308
305
|
}
|
|
309
306
|
function uninstallLaunchd() {
|
|
310
|
-
const
|
|
311
|
-
const plistPath = resolve(process.env.HOME ?? '~', `Library/LaunchAgents/${label}.plist`);
|
|
307
|
+
const plistPath = launchdPlistPath();
|
|
312
308
|
if (!existsSync(plistPath)) {
|
|
313
309
|
log.warn('Service not installed');
|
|
314
310
|
return;
|
|
315
311
|
}
|
|
316
|
-
|
|
317
|
-
execSync(`launchctl unload ${plistPath}`);
|
|
318
|
-
}
|
|
319
|
-
catch { }
|
|
312
|
+
tryExec('launchctl', ['unload', '-w', plistPath]);
|
|
320
313
|
unlinkSync(plistPath);
|
|
321
314
|
log.success('Service removed');
|
|
322
315
|
}
|
|
323
|
-
function installSystemd() {
|
|
324
|
-
const
|
|
325
|
-
|
|
326
|
-
const bundled = resolve(cwd, 'dist/cogitator.mjs');
|
|
327
|
-
const configPath = resolve(cwd, 'src/gateway.ts');
|
|
328
|
-
const entryPoint = existsSync(bundled) ? bundled : configPath;
|
|
329
|
-
const unit = `[Unit]
|
|
330
|
-
Description=Cogitator AI Assistant
|
|
331
|
-
After=network.target
|
|
332
|
-
|
|
333
|
-
[Service]
|
|
334
|
-
Type=simple
|
|
335
|
-
WorkingDirectory=${cwd}
|
|
336
|
-
ExecStart=${nodePath} ${entryPoint}
|
|
337
|
-
Restart=always
|
|
338
|
-
RestartSec=5
|
|
339
|
-
Environment=COGITATOR_DAEMON=1
|
|
340
|
-
StandardOutput=append:${LOG_FILE}
|
|
341
|
-
StandardError=append:${LOG_FILE}
|
|
342
|
-
|
|
343
|
-
[Install]
|
|
344
|
-
WantedBy=multi-user.target
|
|
345
|
-
`;
|
|
346
|
-
const unitPath = resolve(process.env.HOME ?? '~', '.config/systemd/user/cogitator.service');
|
|
347
|
-
const unitDir = dirname(unitPath);
|
|
348
|
-
if (!existsSync(unitDir)) {
|
|
349
|
-
mkdirSync(unitDir, { recursive: true });
|
|
350
|
-
}
|
|
316
|
+
function installSystemd(unit) {
|
|
317
|
+
const unitPath = systemdUnitPath();
|
|
318
|
+
mkdirSync(dirname(unitPath), { recursive: true });
|
|
351
319
|
writeFileSync(unitPath, unit);
|
|
352
320
|
log.success(`Unit file written to ${unitPath}`);
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
execSync('systemctl --user enable cogitator');
|
|
321
|
+
if (tryExec('systemctl', ['--user', 'daemon-reload']) &&
|
|
322
|
+
tryExec('systemctl', ['--user', 'enable', SYSTEMD_UNIT])) {
|
|
356
323
|
log.success('Service enabled (starts on login)');
|
|
357
|
-
log.dim(
|
|
358
|
-
log.dim(
|
|
359
|
-
log.dim(
|
|
324
|
+
log.dim(` systemctl --user start ${SYSTEMD_UNIT} Start now`);
|
|
325
|
+
log.dim(` systemctl --user status ${SYSTEMD_UNIT} Check status`);
|
|
326
|
+
log.dim(` Logs: ${logFile()}`);
|
|
327
|
+
log.dim(' Run "loginctl enable-linger" to keep it running after logout');
|
|
360
328
|
}
|
|
361
|
-
|
|
329
|
+
else {
|
|
362
330
|
log.warn('Failed to enable service. Enable manually:');
|
|
363
331
|
log.dim(' systemctl --user daemon-reload');
|
|
364
|
-
log.dim(
|
|
332
|
+
log.dim(` systemctl --user enable --now ${SYSTEMD_UNIT}`);
|
|
365
333
|
}
|
|
366
334
|
}
|
|
367
335
|
function uninstallSystemd() {
|
|
368
|
-
const unitPath =
|
|
336
|
+
const unitPath = systemdUnitPath();
|
|
369
337
|
if (!existsSync(unitPath)) {
|
|
370
338
|
log.warn('Service not installed');
|
|
371
339
|
return;
|
|
372
340
|
}
|
|
373
|
-
|
|
374
|
-
execSync('systemctl --user stop cogitator');
|
|
375
|
-
execSync('systemctl --user disable cogitator');
|
|
376
|
-
}
|
|
377
|
-
catch { }
|
|
341
|
+
tryExec('systemctl', ['--user', 'disable', '--now', SYSTEMD_UNIT]);
|
|
378
342
|
unlinkSync(unitPath);
|
|
379
|
-
|
|
380
|
-
execSync('systemctl --user daemon-reload');
|
|
381
|
-
}
|
|
382
|
-
catch { }
|
|
343
|
+
tryExec('systemctl', ['--user', 'daemon-reload']);
|
|
383
344
|
log.success('Service removed');
|
|
384
345
|
}
|
|
385
346
|
//# sourceMappingURL=daemon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;AACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAEjD,SAAS,aAAa;IACpB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,OAAO;IACd,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjE,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,mBAAmB,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,iBAAiB,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3E,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,EAAE,GAAG,IAAI;YAAE,OAAO,GAAG,EAAE,KAAK,CAAC;QACjC,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;AAEnG,aAAa;KACV,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,gBAAgB,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;IAC5C,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;IAC9B,IAAI,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,gCAAgC,WAAW,GAAG,CAAC,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,aAAa,EAAE,CAAC;IAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IAE9D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,MAAM,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE,UAAU,CAAC,EAAE;QACrD,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACjC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE;KAC/C,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,GAAG,CAAC,OAAO,CAAC,wBAAwB,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,GAAG,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAC9C,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAClC,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7B,GAAG,CAAC,OAAO,CAAC,gCAAgC,GAAG,GAAG,CAAC,CAAC;IAEpD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YACnB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7B,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,GAAG,CAAC,CAAC;AACV,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,gBAAgB,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;IAC5C,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAEvC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC7B,QAAQ,EAAE,CAAC;gBACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;oBACtC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;wBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAC/B,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,CAAC;IAC1E,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAE7C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAC3C,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;QAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;QAElD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,GAAG,CAAC,2BAA2B,GAAG,gBAAgB,CAAC,CAAC;YACxD,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,EAAE,IAAI,CAAC;KAC/D,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,CAAC;KAClD,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KACxC,MAAM,CAAC,CAAC,OAA0D,EAAE,EAAE;IACrE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC9B,GAAG,CAAC,GAAG,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,cAAc,EAAE,CAAC;IACnB,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,cAAc,EAAE,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,gBAAgB,EAAE,CAAC;IACrB,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,gBAAgB,EAAE,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,SAAS,cAAc;IACrB,MAAM,KAAK,GAAG,qBAAqB,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,wBAAwB,KAAK,QAAQ,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IAE9D,MAAM,KAAK,GAAG;;;;;YAKJ,KAAK;;;cAGH,QAAQ;cACR,UAAU;;;YAGZ,GAAG;;;;;;YAMH,QAAQ;;YAER,QAAQ;;;;;;;SAOX,CAAC;IAER,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChC,GAAG,CAAC,OAAO,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,QAAQ,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;QACxC,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,KAAK,GAAG,qBAAqB,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,wBAAwB,KAAK,QAAQ,CAAC,CAAC;IAE1F,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,UAAU,CAAC,SAAS,CAAC,CAAC;IACtB,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IAE9D,MAAM,IAAI,GAAG;;;;;;mBAMI,GAAG;YACV,QAAQ,IAAI,UAAU;;;;wBAIV,QAAQ;uBACT,QAAQ;;;;CAI9B,CAAC;IAEA,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,wCAAwC,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9B,GAAG,CAAC,OAAO,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QAC3C,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QAC9C,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAC9D,GAAG,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,wCAAwC,CAAC,CAAC;IAE5F,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,iCAAiC,CAAC,CAAC;QAC5C,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErB,IAAI,CAAC;QACH,QAAQ,CAAC,gCAAgC,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"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"}
|