@abdasis/agentdeck 2.44.2
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 +122 -0
- package/agent/dist/config.d.ts +31 -0
- package/agent/dist/config.d.ts.map +1 -0
- package/agent/dist/config.js +81 -0
- package/agent/dist/config.js.map +1 -0
- package/agent/dist/db/commands.d.ts +25 -0
- package/agent/dist/db/commands.d.ts.map +1 -0
- package/agent/dist/db/commands.js +93 -0
- package/agent/dist/db/commands.js.map +1 -0
- package/agent/dist/db/index.d.ts +30 -0
- package/agent/dist/db/index.d.ts.map +1 -0
- package/agent/dist/db/index.js +368 -0
- package/agent/dist/db/index.js.map +1 -0
- package/agent/dist/db/schema.d.ts +74 -0
- package/agent/dist/db/schema.d.ts.map +1 -0
- package/agent/dist/db/schema.js +100 -0
- package/agent/dist/db/schema.js.map +1 -0
- package/agent/dist/db/sessions.d.ts +46 -0
- package/agent/dist/db/sessions.d.ts.map +1 -0
- package/agent/dist/db/sessions.js +198 -0
- package/agent/dist/db/sessions.js.map +1 -0
- package/agent/dist/index.d.ts +2 -0
- package/agent/dist/index.d.ts.map +1 -0
- package/agent/dist/index.js +19 -0
- package/agent/dist/index.js.map +1 -0
- package/agent/dist/lib/command-session.d.ts +20 -0
- package/agent/dist/lib/command-session.d.ts.map +1 -0
- package/agent/dist/lib/command-session.js +64 -0
- package/agent/dist/lib/command-session.js.map +1 -0
- package/agent/dist/lib/git.d.ts +8 -0
- package/agent/dist/lib/git.d.ts.map +1 -0
- package/agent/dist/lib/git.js +194 -0
- package/agent/dist/lib/git.js.map +1 -0
- package/agent/dist/lib/init-script.d.ts +33 -0
- package/agent/dist/lib/init-script.d.ts.map +1 -0
- package/agent/dist/lib/init-script.js +523 -0
- package/agent/dist/lib/init-script.js.map +1 -0
- package/agent/dist/lib/transcript.d.ts +16 -0
- package/agent/dist/lib/transcript.d.ts.map +1 -0
- package/agent/dist/lib/transcript.js +64 -0
- package/agent/dist/lib/transcript.js.map +1 -0
- package/agent/dist/logger.d.ts +12 -0
- package/agent/dist/logger.d.ts.map +1 -0
- package/agent/dist/logger.js +39 -0
- package/agent/dist/logger.js.map +1 -0
- package/agent/dist/middleware/auth.d.ts +15 -0
- package/agent/dist/middleware/auth.d.ts.map +1 -0
- package/agent/dist/middleware/auth.js +55 -0
- package/agent/dist/middleware/auth.js.map +1 -0
- package/agent/dist/routes/commands.d.ts +8 -0
- package/agent/dist/routes/commands.d.ts.map +1 -0
- package/agent/dist/routes/commands.js +229 -0
- package/agent/dist/routes/commands.js.map +1 -0
- package/agent/dist/routes/files.d.ts +7 -0
- package/agent/dist/routes/files.d.ts.map +1 -0
- package/agent/dist/routes/files.js +206 -0
- package/agent/dist/routes/files.js.map +1 -0
- package/agent/dist/routes/hooks.d.ts +7 -0
- package/agent/dist/routes/hooks.d.ts.map +1 -0
- package/agent/dist/routes/hooks.js +147 -0
- package/agent/dist/routes/hooks.js.map +1 -0
- package/agent/dist/routes/index.d.ts +10 -0
- package/agent/dist/routes/index.d.ts.map +1 -0
- package/agent/dist/routes/index.js +10 -0
- package/agent/dist/routes/index.js.map +1 -0
- package/agent/dist/routes/pair.d.ts +26 -0
- package/agent/dist/routes/pair.d.ts.map +1 -0
- package/agent/dist/routes/pair.js +384 -0
- package/agent/dist/routes/pair.js.map +1 -0
- package/agent/dist/routes/projects.d.ts +6 -0
- package/agent/dist/routes/projects.d.ts.map +1 -0
- package/agent/dist/routes/projects.js +121 -0
- package/agent/dist/routes/projects.js.map +1 -0
- package/agent/dist/routes/sessions-git.d.ts +7 -0
- package/agent/dist/routes/sessions-git.d.ts.map +1 -0
- package/agent/dist/routes/sessions-git.js +31 -0
- package/agent/dist/routes/sessions-git.js.map +1 -0
- package/agent/dist/routes/sessions-tmux.d.ts +7 -0
- package/agent/dist/routes/sessions-tmux.d.ts.map +1 -0
- package/agent/dist/routes/sessions-tmux.js +94 -0
- package/agent/dist/routes/sessions-tmux.js.map +1 -0
- package/agent/dist/routes/sessions.d.ts +7 -0
- package/agent/dist/routes/sessions.d.ts.map +1 -0
- package/agent/dist/routes/sessions.js +172 -0
- package/agent/dist/routes/sessions.js.map +1 -0
- package/agent/dist/server.d.ts +6 -0
- package/agent/dist/server.d.ts.map +1 -0
- package/agent/dist/server.js +95 -0
- package/agent/dist/server.js.map +1 -0
- package/agent/dist/terminal.d.ts +19 -0
- package/agent/dist/terminal.d.ts.map +1 -0
- package/agent/dist/terminal.js +175 -0
- package/agent/dist/terminal.js.map +1 -0
- package/agent/dist/updater.d.ts +18 -0
- package/agent/dist/updater.d.ts.map +1 -0
- package/agent/dist/updater.js +122 -0
- package/agent/dist/updater.js.map +1 -0
- package/agent/dist/version.d.ts +20 -0
- package/agent/dist/version.d.ts.map +1 -0
- package/agent/dist/version.js +66 -0
- package/agent/dist/version.js.map +1 -0
- package/agent/dist/websocket-handlers.d.ts +38 -0
- package/agent/dist/websocket-handlers.d.ts.map +1 -0
- package/agent/dist/websocket-handlers.js +389 -0
- package/agent/dist/websocket-handlers.js.map +1 -0
- package/agent/node_modules/@agentdeck/shared/dist/index.d.ts +2 -0
- package/agent/node_modules/@agentdeck/shared/dist/index.d.ts.map +1 -0
- package/agent/node_modules/@agentdeck/shared/dist/index.js +2 -0
- package/agent/node_modules/@agentdeck/shared/dist/index.js.map +1 -0
- package/agent/node_modules/@agentdeck/shared/dist/types/index.d.ts +235 -0
- package/agent/node_modules/@agentdeck/shared/dist/types/index.d.ts.map +1 -0
- package/agent/node_modules/@agentdeck/shared/dist/types/index.js +5 -0
- package/agent/node_modules/@agentdeck/shared/dist/types/index.js.map +1 -0
- package/agent/node_modules/@agentdeck/shared/package.json +29 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +304 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/hooks.d.ts +3 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +187 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +109 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/logs.d.ts +3 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +38 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/profile.d.ts +3 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +156 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/service.d.ts +3 -0
- package/dist/commands/service.d.ts.map +1 -0
- package/dist/commands/service.js +235 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/commands/start.d.ts +3 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +122 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +48 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +3 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +23 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/update.d.ts +3 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +129 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/version.d.ts +3 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +39 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config.d.ts +68 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +156 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/hooks.d.ts +67 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/hooks.js +353 -0
- package/dist/lib/hooks.js.map +1 -0
- package/dist/lib/paths.d.ts +36 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +77 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/prerequisites.d.ts +60 -0
- package/dist/lib/prerequisites.d.ts.map +1 -0
- package/dist/lib/prerequisites.js +266 -0
- package/dist/lib/prerequisites.js.map +1 -0
- package/dist/lib/process.d.ts +40 -0
- package/dist/lib/process.d.ts.map +1 -0
- package/dist/lib/process.js +192 -0
- package/dist/lib/process.js.map +1 -0
- package/dist/service/index.d.ts +44 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +18 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/launchd.d.ts +18 -0
- package/dist/service/launchd.d.ts.map +1 -0
- package/dist/service/launchd.js +208 -0
- package/dist/service/launchd.js.map +1 -0
- package/dist/service/systemd.d.ts +18 -0
- package/dist/service/systemd.d.ts.map +1 -0
- package/dist/service/systemd.js +196 -0
- package/dist/service/systemd.js.map +1 -0
- package/hooks/notify-agentdeck.sh +53 -0
- package/package.json +83 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { spawn } from 'child_process';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
import { existsSync } from 'fs';
|
|
7
|
+
import { loadConfig, configExists, getProfilePath } from '../lib/config.js';
|
|
8
|
+
import { getAgentPaths } from '../lib/paths.js';
|
|
9
|
+
import { startAgentDaemon, isAgentRunning } from '../lib/process.js';
|
|
10
|
+
import { isAbiVersionChanged, ensureNativeModules } from '../lib/prerequisites.js';
|
|
11
|
+
export const startCommand = new Command('start')
|
|
12
|
+
.description('Start the AgentDeck agent')
|
|
13
|
+
.option('-f, --foreground', 'Run in foreground (not as daemon)')
|
|
14
|
+
.option('-P, --profile <name>', 'Use a specific profile')
|
|
15
|
+
.action(async (options, cmd) => {
|
|
16
|
+
// Get profile from command option or parent (global) option
|
|
17
|
+
const profileName = options.profile || cmd.parent?.opts().profile;
|
|
18
|
+
const profileLabel = profileName ? ` (profile: ${profileName})` : '';
|
|
19
|
+
// Check configuration
|
|
20
|
+
if (!configExists(profileName)) {
|
|
21
|
+
if (profileName) {
|
|
22
|
+
console.log(chalk.red(`Profile '${profileName}' not found. Run: agentdeck profile create ${profileName}\n`));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.log(chalk.red('Configuration not found. Run: agentdeck init\n'));
|
|
26
|
+
}
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
const config = loadConfig(profileName);
|
|
30
|
+
if (!config) {
|
|
31
|
+
console.log(chalk.red('Failed to load configuration.\n'));
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
// Check native module compatibility (auto-rebuild if Node version changed)
|
|
35
|
+
if (isAbiVersionChanged()) {
|
|
36
|
+
const rebuildSpinner = ora('Node version changed, rebuilding native modules...').start();
|
|
37
|
+
const nativeCheck = await ensureNativeModules();
|
|
38
|
+
if (nativeCheck.status === 'ok') {
|
|
39
|
+
rebuildSpinner.succeed('Native modules rebuilt successfully');
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
rebuildSpinner.fail(nativeCheck.message);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const nativeCheck = await ensureNativeModules();
|
|
48
|
+
if (nativeCheck.status === 'error') {
|
|
49
|
+
console.log(chalk.red(`${nativeCheck.message}\n`));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Check if already running
|
|
54
|
+
const status = isAgentRunning();
|
|
55
|
+
if (status.running) {
|
|
56
|
+
console.log(chalk.yellow(`Agent is already running (PID: ${status.pid})\n`));
|
|
57
|
+
console.log('Use "agentdeck restart" to restart or "agentdeck stop" to stop.\n');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (options.foreground) {
|
|
61
|
+
// Run in foreground
|
|
62
|
+
console.log(chalk.blue(`Starting agent${profileLabel} in foreground on port ${config.agent.port}...\n`));
|
|
63
|
+
const paths = getAgentPaths();
|
|
64
|
+
const configPath = getProfilePath(profileName);
|
|
65
|
+
const entryPoint = paths.isDev
|
|
66
|
+
? join(paths.agentRoot, 'src', 'index.ts')
|
|
67
|
+
: join(paths.agentRoot, 'dist', 'index.js');
|
|
68
|
+
if (!existsSync(entryPoint) && !existsSync(entryPoint.replace('.ts', '.js'))) {
|
|
69
|
+
console.log(chalk.red(`Agent entry point not found: ${entryPoint}\n`));
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
let command;
|
|
73
|
+
let args;
|
|
74
|
+
if (paths.isDev) {
|
|
75
|
+
command = 'npx';
|
|
76
|
+
args = ['tsx', entryPoint];
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
command = paths.nodePath;
|
|
80
|
+
args = [entryPoint];
|
|
81
|
+
}
|
|
82
|
+
const child = spawn(command, args, {
|
|
83
|
+
cwd: paths.agentRoot,
|
|
84
|
+
stdio: 'inherit',
|
|
85
|
+
env: {
|
|
86
|
+
...process.env,
|
|
87
|
+
AGENTDECK_CONFIG: configPath,
|
|
88
|
+
AGENTDECK_DATA: paths.dataDir,
|
|
89
|
+
AGENTDECK_PROFILE: profileName || '',
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
child.on('error', (err) => {
|
|
93
|
+
console.error(chalk.red(`Failed to start: ${err.message}`));
|
|
94
|
+
process.exit(1);
|
|
95
|
+
});
|
|
96
|
+
child.on('exit', (code) => {
|
|
97
|
+
process.exit(code ?? 0);
|
|
98
|
+
});
|
|
99
|
+
// Handle Ctrl+C gracefully
|
|
100
|
+
process.on('SIGINT', () => {
|
|
101
|
+
child.kill('SIGTERM');
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Run as daemon
|
|
106
|
+
const spinner = ora(`Starting agent${profileLabel}...`).start();
|
|
107
|
+
const result = await startAgentDaemon(profileName);
|
|
108
|
+
if (result.success) {
|
|
109
|
+
spinner.succeed(`Agent started${profileLabel} (PID: ${result.pid})`);
|
|
110
|
+
const paths = getAgentPaths();
|
|
111
|
+
console.log(chalk.dim(` Logs: ${join(paths.logDir, 'agent.log')}`));
|
|
112
|
+
console.log();
|
|
113
|
+
console.log(`Agent running on ${chalk.cyan(`http://localhost:${config.agent.port}`)}`);
|
|
114
|
+
console.log();
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
spinner.fail(`Failed to start: ${result.error}`);
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,SAiDtB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { loadConfig, configExists } from '../lib/config.js';
|
|
4
|
+
import { getAgentPaths } from '../lib/paths.js';
|
|
5
|
+
import { isAgentRunning, getAgentHealth } from '../lib/process.js';
|
|
6
|
+
export const statusCommand = new Command('status')
|
|
7
|
+
.description('Show agent status')
|
|
8
|
+
.action(async () => {
|
|
9
|
+
console.log(chalk.bold('\nAgentDeck Agent Status\n'));
|
|
10
|
+
// Configuration
|
|
11
|
+
if (!configExists()) {
|
|
12
|
+
console.log(chalk.red('Not configured. Run: agentdeck init\n'));
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const config = loadConfig();
|
|
16
|
+
if (!config) {
|
|
17
|
+
console.log(chalk.red('Failed to load configuration.\n'));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const paths = getAgentPaths();
|
|
21
|
+
// Process status
|
|
22
|
+
const processStatus = isAgentRunning();
|
|
23
|
+
const statusIcon = processStatus.running ? chalk.green('●') : chalk.red('●');
|
|
24
|
+
const statusText = processStatus.running ? chalk.green('Running') : chalk.red('Stopped');
|
|
25
|
+
console.log(`${statusIcon} Process: ${statusText}`);
|
|
26
|
+
if (processStatus.pid) {
|
|
27
|
+
console.log(` PID: ${processStatus.pid}`);
|
|
28
|
+
}
|
|
29
|
+
// Health check if running
|
|
30
|
+
if (processStatus.running) {
|
|
31
|
+
const health = await getAgentHealth(config.agent.port);
|
|
32
|
+
if (health.healthy) {
|
|
33
|
+
console.log(` Sessions: ${health.sessions}`);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log(chalk.yellow(` Warning: Agent not responding (${health.error})`));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
console.log();
|
|
40
|
+
// Configuration info
|
|
41
|
+
console.log(chalk.dim('Configuration:'));
|
|
42
|
+
console.log(` Machine: ${config.machine.name}`);
|
|
43
|
+
console.log(` Port: ${config.agent.port}`);
|
|
44
|
+
console.log(` Projects: ${config.projects.basePath}`);
|
|
45
|
+
console.log(` Config: ${paths.configPath}`);
|
|
46
|
+
console.log();
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEtD,gBAAgB;IAChB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAE9B,iBAAiB;IACjB,MAAM,aAAa,GAAG,cAAc,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEzF,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,aAAa,UAAU,EAAE,CAAC,CAAC;IACpD,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,UAAU,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,0BAA0B;IAC1B,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,qBAAqB;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,WAAW,SAoBpB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { stopAgent, isAgentRunning } from '../lib/process.js';
|
|
5
|
+
export const stopCommand = new Command('stop')
|
|
6
|
+
.description('Stop the AgentDeck agent')
|
|
7
|
+
.action(async () => {
|
|
8
|
+
const status = isAgentRunning();
|
|
9
|
+
if (!status.running) {
|
|
10
|
+
console.log(chalk.yellow('Agent is not running.\n'));
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const spinner = ora(`Stopping agent (PID: ${status.pid})...`).start();
|
|
14
|
+
const result = stopAgent();
|
|
15
|
+
if (result.success) {
|
|
16
|
+
spinner.succeed('Agent stopped');
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
spinner.fail(`Failed to stop: ${result.error}`);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,aAAa,SAyItB,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { exec } from 'child_process';
|
|
5
|
+
import { promisify } from 'util';
|
|
6
|
+
import { createServiceManager } from '../service/index.js';
|
|
7
|
+
import { isAgentRunning, stopAgent } from '../lib/process.js';
|
|
8
|
+
const execAsync = promisify(exec);
|
|
9
|
+
const PACKAGE_NAME = '@agentdeck/cli';
|
|
10
|
+
export const updateCommand = new Command('update')
|
|
11
|
+
.description('Update AgentDeck to the latest version')
|
|
12
|
+
.option('--check', 'Only check for updates without installing')
|
|
13
|
+
.action(async (options) => {
|
|
14
|
+
console.log(chalk.bold('\nAgentDeck Update\n'));
|
|
15
|
+
const checkSpinner = ora('Checking for updates...').start();
|
|
16
|
+
try {
|
|
17
|
+
// Get current version
|
|
18
|
+
const pkg = await import('../../package.json', {
|
|
19
|
+
with: { type: 'json' },
|
|
20
|
+
});
|
|
21
|
+
const currentVersion = pkg.default.version;
|
|
22
|
+
// Check npm for latest version
|
|
23
|
+
let latestVersion;
|
|
24
|
+
try {
|
|
25
|
+
const { stdout } = await execAsync(`npm view ${PACKAGE_NAME} version 2>/dev/null`);
|
|
26
|
+
latestVersion = stdout.trim();
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
checkSpinner.fail('Failed to check for updates. Are you connected to the internet?');
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
if (currentVersion === latestVersion) {
|
|
33
|
+
checkSpinner.succeed(`Already on the latest version (${currentVersion})`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
checkSpinner.succeed(`Update available: ${currentVersion} → ${latestVersion}`);
|
|
37
|
+
if (options.check) {
|
|
38
|
+
console.log(chalk.dim('\nRun "agentdeck update" to install the update.\n'));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.log();
|
|
42
|
+
// Check if service is running
|
|
43
|
+
const serviceManager = createServiceManager();
|
|
44
|
+
let serviceWasRunning = false;
|
|
45
|
+
try {
|
|
46
|
+
const serviceStatus = await serviceManager.status();
|
|
47
|
+
serviceWasRunning = serviceStatus.running;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Service not installed, check daemon
|
|
51
|
+
const daemonStatus = isAgentRunning();
|
|
52
|
+
serviceWasRunning = daemonStatus.running;
|
|
53
|
+
}
|
|
54
|
+
// Stop agent if running
|
|
55
|
+
if (serviceWasRunning) {
|
|
56
|
+
const stopSpinner = ora('Stopping agent...').start();
|
|
57
|
+
try {
|
|
58
|
+
const serviceStatus = await serviceManager.status();
|
|
59
|
+
if (serviceStatus.installed && serviceStatus.running) {
|
|
60
|
+
await serviceManager.stop();
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
await stopAgent();
|
|
64
|
+
}
|
|
65
|
+
stopSpinner.succeed('Agent stopped');
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
stopSpinner.warn(`Could not stop agent: ${err.message}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Update via npm
|
|
72
|
+
const updateSpinner = ora(`Updating to ${latestVersion} via npm...`).start();
|
|
73
|
+
try {
|
|
74
|
+
const { stdout, stderr } = await execAsync(`npm install -g ${PACKAGE_NAME}@${latestVersion} 2>&1`, { timeout: 120_000 });
|
|
75
|
+
// Verify the installed version matches what we requested
|
|
76
|
+
const { stdout: installedStr } = await execAsync(`npm ls -g ${PACKAGE_NAME} --depth=0 --json 2>/dev/null`);
|
|
77
|
+
const installed = JSON.parse(installedStr);
|
|
78
|
+
const installedVersion = installed?.dependencies?.[PACKAGE_NAME]?.version;
|
|
79
|
+
if (installedVersion !== latestVersion) {
|
|
80
|
+
updateSpinner.fail(`npm installed ${installedVersion || 'unknown'} instead of ${latestVersion}`);
|
|
81
|
+
if (stderr || stdout) {
|
|
82
|
+
console.log(chalk.dim('\nnpm output:'));
|
|
83
|
+
console.log(chalk.dim(stderr || stdout));
|
|
84
|
+
}
|
|
85
|
+
console.log(chalk.dim(`\nTry: npm install -g ${PACKAGE_NAME}@${latestVersion} --force\n`));
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
updateSpinner.succeed(`Updated to ${latestVersion}`);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
const execErr = err;
|
|
92
|
+
updateSpinner.fail(`Failed to update: ${execErr.message}`);
|
|
93
|
+
if (execErr.stderr) {
|
|
94
|
+
console.log(chalk.dim('\nnpm error output:'));
|
|
95
|
+
console.log(chalk.dim(execErr.stderr));
|
|
96
|
+
}
|
|
97
|
+
console.log(chalk.dim(`\nTry running manually: npm install -g ${PACKAGE_NAME}@${latestVersion}\n`));
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
// Restart agent if it was running
|
|
101
|
+
if (serviceWasRunning) {
|
|
102
|
+
const startSpinner = ora('Restarting agent...').start();
|
|
103
|
+
try {
|
|
104
|
+
const serviceStatus = await serviceManager.status();
|
|
105
|
+
if (serviceStatus.installed) {
|
|
106
|
+
await serviceManager.start();
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
// Will use the daemon mode - but after update the binary changed
|
|
110
|
+
// so we should tell user to restart manually
|
|
111
|
+
startSpinner.info('Please restart the agent manually: agentdeck start');
|
|
112
|
+
}
|
|
113
|
+
startSpinner.succeed('Agent restarted');
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
startSpinner.warn(`Could not restart agent: ${err.message}`);
|
|
117
|
+
console.log(chalk.dim('Run "agentdeck start" to start the agent manually.'));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
console.log();
|
|
121
|
+
console.log(chalk.green('✓ Update complete!'));
|
|
122
|
+
console.log();
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
checkSpinner.fail(`Error: ${err.message}`);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEhD,MAAM,YAAY,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE5D,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,oBAAoB,EAAE;YAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;QAE3C,+BAA+B;QAC/B,IAAI,aAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,YAAY,sBAAsB,CAAC,CAAC;YACnF,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;YACrC,YAAY,CAAC,OAAO,CAAC,kCAAkC,cAAc,GAAG,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,qBAAqB,cAAc,MAAM,aAAa,EAAE,CAAC,CAAC;QAE/E,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,8BAA8B;QAC9B,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;QAC9C,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;YACpD,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;YACtC,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;YACtC,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC;QAC3C,CAAC;QAED,wBAAwB;QACxB,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;gBACpD,IAAI,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;oBACrD,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,EAAE,CAAC;gBACpB,CAAC;gBACD,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,WAAW,CAAC,IAAI,CAAC,yBAA0B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,aAAa,GAAG,GAAG,CAAC,eAAe,aAAa,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7E,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CACxC,kBAAkB,YAAY,IAAI,aAAa,OAAO,EACtD,EAAE,OAAO,EAAE,OAAO,EAAE,CACrB,CAAC;YAEF,yDAAyD;YACzD,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,SAAS,CAC9C,aAAa,YAAY,+BAA+B,CACzD,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3C,MAAM,gBAAgB,GAAG,SAAS,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;YAE1E,IAAI,gBAAgB,KAAK,aAAa,EAAE,CAAC;gBACvC,aAAa,CAAC,IAAI,CAChB,iBAAiB,gBAAgB,IAAI,SAAS,eAAe,aAAa,EAAE,CAC7E,CAAC;gBACF,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,yBAAyB,YAAY,IAAI,aAAa,YAAY,CAAC,CAC9E,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,aAAa,CAAC,OAAO,CAAC,cAAc,aAAa,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAmD,CAAC;YACpE,aAAa,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,0CAA0C,YAAY,IAAI,aAAa,IAAI,CAAC,CACvF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,kCAAkC;QAClC,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;gBACpD,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;oBAC5B,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,iEAAiE;oBACjE,6CAA6C;oBAC7C,YAAY,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gBAC1E,CAAC;gBACD,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,YAAY,CAAC,IAAI,CAAC,4BAA6B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,cAAc,SA8BvB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { exec } from 'child_process';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
const execAsync = promisify(exec);
|
|
6
|
+
const PACKAGE_NAME = '@agentdeck/cli';
|
|
7
|
+
export const versionCommand = new Command('version')
|
|
8
|
+
.description('Show version and check for updates')
|
|
9
|
+
.action(async () => {
|
|
10
|
+
// Get current version from package.json
|
|
11
|
+
const pkg = await import('../../package.json', {
|
|
12
|
+
with: { type: 'json' },
|
|
13
|
+
});
|
|
14
|
+
const currentVersion = pkg.default.version;
|
|
15
|
+
// Check npm for latest version
|
|
16
|
+
let latestVersion = null;
|
|
17
|
+
try {
|
|
18
|
+
const { stdout } = await execAsync(`npm view ${PACKAGE_NAME} version 2>/dev/null`);
|
|
19
|
+
latestVersion = stdout.trim();
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Network error or package not found - silently ignore
|
|
23
|
+
}
|
|
24
|
+
// Display version
|
|
25
|
+
if (latestVersion && currentVersion !== latestVersion) {
|
|
26
|
+
console.log(`AgentDeck v${currentVersion}`);
|
|
27
|
+
console.log();
|
|
28
|
+
console.log(chalk.yellow(`Update available: ${currentVersion} → ${latestVersion}`));
|
|
29
|
+
console.log(chalk.dim('Run "agentdeck update" to install.'));
|
|
30
|
+
}
|
|
31
|
+
else if (latestVersion) {
|
|
32
|
+
console.log(`AgentDeck v${currentVersion} ${chalk.green('(latest)')}`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log(`AgentDeck v${currentVersion}`);
|
|
36
|
+
console.log(chalk.dim('Could not check for updates.'));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,wCAAwC;IACxC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,oBAAoB,EAAE;QAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KACvB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;IAE3C,+BAA+B;IAC/B,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,YAAY,sBAAsB,CAAC,CAAC;QACnF,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IAED,kBAAkB;IAClB,IAAI,aAAa,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,cAAc,cAAc,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,cAAc,MAAM,aAAa,EAAE,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC/D,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,cAAc,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,cAAc,cAAc,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,QAAA,MAAM,OAAO,SAAgB,CAAC;AAsB9B,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { initCommand } from './commands/init.js';
|
|
4
|
+
import { startCommand } from './commands/start.js';
|
|
5
|
+
import { stopCommand } from './commands/stop.js';
|
|
6
|
+
import { statusCommand } from './commands/status.js';
|
|
7
|
+
import { logsCommand } from './commands/logs.js';
|
|
8
|
+
import { serviceCommand } from './commands/service.js';
|
|
9
|
+
import { updateCommand } from './commands/update.js';
|
|
10
|
+
import { doctorCommand } from './commands/doctor.js';
|
|
11
|
+
import { profileCommand } from './commands/profile.js';
|
|
12
|
+
import { versionCommand } from './commands/version.js';
|
|
13
|
+
import { hooksCommand } from './commands/hooks.js';
|
|
14
|
+
const program = new Command();
|
|
15
|
+
program
|
|
16
|
+
.name('agentdeck')
|
|
17
|
+
.description('AgentDeck - Your command center for every coding agent')
|
|
18
|
+
.version('2.44.2')
|
|
19
|
+
.option('-P, --profile <name>', 'Use a specific profile (dev, prod, etc.)');
|
|
20
|
+
// Add commands
|
|
21
|
+
program.addCommand(initCommand);
|
|
22
|
+
program.addCommand(startCommand);
|
|
23
|
+
program.addCommand(stopCommand);
|
|
24
|
+
program.addCommand(statusCommand);
|
|
25
|
+
program.addCommand(logsCommand);
|
|
26
|
+
program.addCommand(serviceCommand);
|
|
27
|
+
program.addCommand(updateCommand);
|
|
28
|
+
program.addCommand(doctorCommand);
|
|
29
|
+
program.addCommand(profileCommand);
|
|
30
|
+
program.addCommand(versionCommand);
|
|
31
|
+
program.addCommand(hooksCommand);
|
|
32
|
+
// Export program for use in subcommands (to access global options)
|
|
33
|
+
export { program };
|
|
34
|
+
// Default action (no command)
|
|
35
|
+
program.action(() => {
|
|
36
|
+
console.log(`
|
|
37
|
+
╭──────────────────────────────────╮
|
|
38
|
+
│ AgentDeck │
|
|
39
|
+
│ Your command center for agents │
|
|
40
|
+
╰──────────────────────────────────╯
|
|
41
|
+
`);
|
|
42
|
+
program.help();
|
|
43
|
+
});
|
|
44
|
+
program.parse();
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,sBAAsB,EAAE,0CAA0C,CAAC,CAAC;AAE9E,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjC,mEAAmE;AACnE,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,8BAA8B;AAC9B,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;IAClB,OAAO,CAAC,GAAG,CAAC;;;;;CAKb,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export interface AgentConfig {
|
|
2
|
+
machine: {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
};
|
|
6
|
+
agent: {
|
|
7
|
+
port: number;
|
|
8
|
+
accessToken?: string;
|
|
9
|
+
};
|
|
10
|
+
projects: {
|
|
11
|
+
basePath: string;
|
|
12
|
+
whitelist: string[];
|
|
13
|
+
};
|
|
14
|
+
editor?: {
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
portRange: {
|
|
17
|
+
start: number;
|
|
18
|
+
end: number;
|
|
19
|
+
};
|
|
20
|
+
idleTimeout: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the profiles directory path
|
|
25
|
+
*/
|
|
26
|
+
export declare function getProfilesDir(): string;
|
|
27
|
+
/**
|
|
28
|
+
* Get the config file path for a specific profile
|
|
29
|
+
* @param profileName - Profile name, or undefined/null/'default' for default config
|
|
30
|
+
*/
|
|
31
|
+
export declare function getProfilePath(profileName?: string | null): string;
|
|
32
|
+
/**
|
|
33
|
+
* List all available profiles
|
|
34
|
+
*/
|
|
35
|
+
export declare function listProfiles(): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Check if a profile exists
|
|
38
|
+
*/
|
|
39
|
+
export declare function profileExists(profileName?: string | null): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Delete a profile
|
|
42
|
+
*/
|
|
43
|
+
export declare function deleteProfile(profileName: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Load configuration from ~/.agentdeck/config.json or a profile
|
|
46
|
+
* @param profileName - Profile name to load, or undefined for default
|
|
47
|
+
*/
|
|
48
|
+
export declare function loadConfig(profileName?: string | null): AgentConfig | null;
|
|
49
|
+
/**
|
|
50
|
+
* Save configuration to ~/.agentdeck/config.json or a profile
|
|
51
|
+
* @param config - Configuration to save
|
|
52
|
+
* @param profileName - Profile name to save to, or undefined for default
|
|
53
|
+
*/
|
|
54
|
+
export declare function saveConfig(config: AgentConfig, profileName?: string | null): void;
|
|
55
|
+
/**
|
|
56
|
+
* Create a new configuration with defaults
|
|
57
|
+
*/
|
|
58
|
+
export declare function createConfig(options: {
|
|
59
|
+
machineName: string;
|
|
60
|
+
port?: number;
|
|
61
|
+
projectsPath?: string;
|
|
62
|
+
}): AgentConfig;
|
|
63
|
+
/**
|
|
64
|
+
* Check if configuration exists
|
|
65
|
+
* @param profileName - Profile name to check, or undefined for default
|
|
66
|
+
*/
|
|
67
|
+
export declare function configExists(profileName?: string | null): boolean;
|
|
68
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1C,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAqBD;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQlE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAsBvC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAGlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAY1D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAwB1E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAcjF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,WAAW,CAgBd;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAGjE"}
|