@fleettools/cli 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Fleet Services Command
3
+ *
4
+ * Manage individual FleetTools services
5
+ */
6
+ import chalk from 'chalk';
7
+ import { spawn } from 'node:child_process';
8
+ import { join } from 'node:path';
9
+ import { loadProjectConfig, isFleetProject } from '@fleettools/fleet-shared';
10
+ /**
11
+ * Get service entry point path based on deployment mode
12
+ */
13
+ function getServicePath(service, mode, cwd) {
14
+ if (mode === 'local') {
15
+ return join(cwd, service === 'squawk' ? 'squawk' : 'server/api', 'dist', 'index.js');
16
+ }
17
+ return join(cwd, 'node_modules', `@fleettools/${service === 'squawk' ? 'squawk' : 'server'}`, 'dist', 'index.js');
18
+ }
19
+ export function registerServiceCommands(program) {
20
+ const servicesCmd = program
21
+ .command('services')
22
+ .description('Manage FleetTools services');
23
+ servicesCmd
24
+ .command('start [service]')
25
+ .description('Start a specific service (squawk, api, postgres) or all')
26
+ .action(async (serviceName) => {
27
+ try {
28
+ if (!isFleetProject()) {
29
+ console.error(chalk.red('❌ Not in a FleetTools project.'));
30
+ process.exit(1);
31
+ }
32
+ const config = loadProjectConfig();
33
+ if (!config) {
34
+ console.error(chalk.red('❌ Failed to load project configuration.'));
35
+ process.exit(1);
36
+ }
37
+ const mode = config.fleet?.mode || 'local';
38
+ const services = serviceName ? [serviceName] :
39
+ config.services.squawk.enabled ? ['squawk'] : [];
40
+ if (services.length === 0) {
41
+ console.log(chalk.yellow('⚠️ No services enabled in configuration.'));
42
+ return;
43
+ }
44
+ for (const service of services) {
45
+ switch (service) {
46
+ case 'squawk':
47
+ if (!config.services.squawk.enabled) {
48
+ console.log(chalk.yellow(`⚠️ Squawk service is disabled in configuration.`));
49
+ continue;
50
+ }
51
+ console.log(chalk.blue('Starting Squawk service...'));
52
+ const squawkPath = getServicePath('squawk', mode, process.cwd());
53
+ spawn('bun', [squawkPath], {
54
+ stdio: 'inherit',
55
+ env: { ...process.env, SQUAWK_PORT: config.services.squawk.port.toString() }
56
+ });
57
+ break;
58
+ case 'api':
59
+ if (!config.services.api.enabled) {
60
+ console.log(chalk.yellow(`⚠️ API service is disabled in configuration.`));
61
+ continue;
62
+ }
63
+ console.log(chalk.blue('Starting API service...'));
64
+ const apiPath = getServicePath('api', mode, process.cwd());
65
+ spawn('bun', [apiPath], {
66
+ stdio: 'inherit',
67
+ env: { ...process.env, PORT: config.services.api.port.toString() }
68
+ });
69
+ break;
70
+ default:
71
+ console.error(chalk.red(`❌ Unknown service: ${service}`));
72
+ console.log(chalk.yellow('Available services: squawk, api, postgres'));
73
+ }
74
+ }
75
+ }
76
+ catch (error) {
77
+ console.error(chalk.red('❌ Failed to start service:'), error.message);
78
+ }
79
+ });
80
+ servicesCmd
81
+ .command('stop [service]')
82
+ .description('Stop a specific service or all')
83
+ .action(async (serviceName) => {
84
+ try {
85
+ console.log(chalk.yellow('⚠️ Service stopping not implemented yet.'));
86
+ console.log(chalk.gray('Use Ctrl+C to stop running services, or use fleet stop command.'));
87
+ }
88
+ catch (error) {
89
+ console.error(chalk.red('❌ Failed to stop service:'), error.message);
90
+ }
91
+ });
92
+ servicesCmd
93
+ .command('restart [service]')
94
+ .description('Restart a specific service or all')
95
+ .action(async (serviceName) => {
96
+ try {
97
+ console.log(chalk.yellow('⚠️ Service restart not implemented yet.'));
98
+ console.log(chalk.gray('Use fleet stop && fleet start to restart services.'));
99
+ }
100
+ catch (error) {
101
+ console.error(chalk.red('❌ Failed to restart service:'), error.message);
102
+ }
103
+ });
104
+ servicesCmd
105
+ .command('logs [service]')
106
+ .description('Show logs for a specific service')
107
+ .option('-f, --follow', 'Follow log output')
108
+ .action(async (serviceName, options) => {
109
+ try {
110
+ console.log(chalk.yellow('⚠️ Service logs not implemented yet.'));
111
+ console.log(chalk.gray('Check individual service logs in .fleet/logs/ directory.'));
112
+ }
113
+ catch (error) {
114
+ console.error(chalk.red('❌ Failed to show logs:'), error.message);
115
+ }
116
+ });
117
+ }
118
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/commands/services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Fleet Start Command
3
+ *
4
+ * Start FleetTools services
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare function registerStartCommand(program: Command): void;
8
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyI3D"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Fleet Start Command
3
+ *
4
+ * Start FleetTools services
5
+ */
6
+ import chalk from 'chalk';
7
+ import { spawn } from 'node:child_process';
8
+ import { join } from 'node:path';
9
+ import { loadProjectConfig, isFleetProject, getRuntimeInfo, sleep } from '@fleettools/fleet-shared';
10
+ /**
11
+ * Get service entry point path based on deployment mode
12
+ */
13
+ function getServicePath(service, mode, cwd) {
14
+ if (mode === 'local') {
15
+ return join(cwd, service === 'squawk' ? 'squawk' : 'server/api', 'dist', 'index.js');
16
+ }
17
+ return join(cwd, 'node_modules', `@fleettools/${service === 'squawk' ? 'squawk' : 'server'}`, 'dist', 'index.js');
18
+ }
19
+ export function registerStartCommand(program) {
20
+ program
21
+ .command('start')
22
+ .description('Start FleetTools services')
23
+ .option('-s, --services <services>', 'Specific services to start (comma-separated)')
24
+ .option('-w, --watch', 'Watch for changes and restart')
25
+ .option('-d, --daemon', 'Run in background')
26
+ .action(async (options) => {
27
+ try {
28
+ console.log(chalk.blue.bold('🚀 Starting FleetTools Services'));
29
+ console.log(chalk.gray('═'.repeat(40)));
30
+ console.log();
31
+ // Check if we're in a FleetTools project
32
+ if (!isFleetProject()) {
33
+ console.error(chalk.red('❌ Not a FleetTools project.'));
34
+ console.log(chalk.yellow('Run: fleet init to initialize a new project.'));
35
+ process.exit(1);
36
+ }
37
+ const config = loadProjectConfig();
38
+ if (!config) {
39
+ console.error(chalk.red('❌ Failed to load project configuration.'));
40
+ process.exit(1);
41
+ }
42
+ const runtimeInfo = getRuntimeInfo();
43
+ const mode = config.fleet?.mode || 'local';
44
+ console.log();
45
+ // Parse services to start
46
+ let servicesToStart = ['squawk', 'api'];
47
+ if (options.services) {
48
+ servicesToStart = options.services.split(',').map((s) => s.trim());
49
+ }
50
+ // Determine services based on config and request
51
+ const enabledServices = [];
52
+ const processes = [];
53
+ if (servicesToStart.includes('squawk') && config.services.squawk.enabled) {
54
+ enabledServices.push('squawk');
55
+ console.log(chalk.blue('Starting Squawk coordination service...'));
56
+ const squawkPath = getServicePath('squawk', mode, process.cwd());
57
+ const squawkProcess = spawn('bun', [squawkPath], {
58
+ stdio: options.daemon ? 'ignore' : 'inherit',
59
+ detached: options.daemon,
60
+ env: {
61
+ ...process.env,
62
+ SQUAWK_PORT: config.services.squawk.port.toString()
63
+ }
64
+ });
65
+ if (options.daemon) {
66
+ squawkProcess.unref();
67
+ }
68
+ processes.push({ name: 'squawk', process: squawkProcess, servicePath: squawkPath });
69
+ if (!options.daemon) {
70
+ await sleep(1000); // Give it time to start
71
+ }
72
+ }
73
+ if (servicesToStart.includes('api') && config.services.api.enabled) {
74
+ enabledServices.push('api');
75
+ console.log(chalk.blue('Starting API server...'));
76
+ const apiPath = getServicePath('api', mode, process.cwd());
77
+ const apiProcess = spawn('bun', [apiPath], {
78
+ stdio: options.daemon ? 'ignore' : 'inherit',
79
+ detached: options.daemon,
80
+ env: {
81
+ ...process.env,
82
+ PORT: config.services.api.port.toString()
83
+ }
84
+ });
85
+ if (options.daemon) {
86
+ apiProcess.unref();
87
+ }
88
+ processes.push({ name: 'api', process: apiProcess, servicePath: apiPath });
89
+ if (!options.daemon) {
90
+ await sleep(1000); // Give it time to start
91
+ }
92
+ }
93
+ console.log();
94
+ if (enabledServices.length > 0) {
95
+ console.log(chalk.green.bold(`✅ Started services: ${enabledServices.join(', ')}`));
96
+ if (!options.daemon) {
97
+ console.log(chalk.gray('Services are running. Press Ctrl+C to stop.'));
98
+ // Handle graceful shutdown
99
+ const handleShutdown = (signal) => {
100
+ console.log(chalk.yellow(`\n🛑 Received ${signal}, stopping services...`));
101
+ processes.forEach(({ process, name }) => {
102
+ if (process && !process.killed) {
103
+ console.log(chalk.blue(`Stopping ${name}...`));
104
+ process.kill('SIGTERM');
105
+ }
106
+ });
107
+ setTimeout(() => {
108
+ process.exit(0);
109
+ }, 2000);
110
+ };
111
+ process.on('SIGINT', () => handleShutdown('SIGINT'));
112
+ process.on('SIGTERM', () => handleShutdown('SIGTERM'));
113
+ // Keep the process alive
114
+ if (options.watch) {
115
+ console.log(chalk.blue('👀 Watching for changes...'));
116
+ }
117
+ }
118
+ else {
119
+ console.log(chalk.gray('Services are running in the background.'));
120
+ console.log(chalk.yellow('Use: fleet status to check service status'));
121
+ console.log(chalk.yellow('Use: fleet stop to stop services'));
122
+ }
123
+ }
124
+ else {
125
+ console.log(chalk.yellow('⚠️ No services enabled in configuration.'));
126
+ }
127
+ }
128
+ catch (error) {
129
+ console.error(chalk.red('❌ Failed to start services:'), error.message);
130
+ if (process.argv.includes('--verbose')) {
131
+ console.error(error.stack);
132
+ }
133
+ process.exit(1);
134
+ }
135
+ });
136
+ }
137
+ //# 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,8 @@
1
+ /**
2
+ * Fleet Status Command
3
+ *
4
+ * Show FleetTools status and information
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare function registerStatusCommand(program: Command): void;
8
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmK5D"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Fleet Status Command
3
+ *
4
+ * Show FleetTools status and information
5
+ */
6
+ import chalk from 'chalk';
7
+ import { loadGlobalConfig, loadProjectConfig, isFleetProject, getRuntimeInfo, commandExists } from '@fleettools/fleet-shared';
8
+ export function registerStatusCommand(program) {
9
+ program
10
+ .command('status')
11
+ .description('Show FleetTools status and configuration')
12
+ .option('--json', 'Output in JSON format')
13
+ .action(async (options) => {
14
+ try {
15
+ const runtimeInfo = getRuntimeInfo();
16
+ const globalConfig = loadGlobalConfig();
17
+ const statusData = {
18
+ runtime: {
19
+ type: runtimeInfo.type,
20
+ version: runtimeInfo.version,
21
+ supported: runtimeInfo.supported,
22
+ platform: runtimeInfo.platform,
23
+ arch: runtimeInfo.arch
24
+ },
25
+ global: {
26
+ configPath: globalConfig.paths.configDir,
27
+ version: globalConfig.version,
28
+ defaultRuntime: globalConfig.defaultRuntime
29
+ },
30
+ project: null,
31
+ services: {
32
+ squawk: 'unknown',
33
+ api: 'unknown'
34
+ }
35
+ };
36
+ if (isFleetProject()) {
37
+ const projectConfig = loadProjectConfig();
38
+ if (projectConfig) {
39
+ statusData.project = {
40
+ name: projectConfig.name,
41
+ version: projectConfig.version,
42
+ mode: projectConfig.fleet.mode,
43
+ services: {
44
+ squawk: {
45
+ enabled: projectConfig.services.squawk.enabled,
46
+ port: projectConfig.services.squawk.port
47
+ },
48
+ api: {
49
+ enabled: projectConfig.services.api.enabled,
50
+ port: projectConfig.services.api.port
51
+ },
52
+ postgres: {
53
+ enabled: projectConfig.services.postgres.enabled,
54
+ provider: projectConfig.services.postgres.provider,
55
+ port: projectConfig.services.postgres.port
56
+ }
57
+ },
58
+ plugins: {
59
+ claudeCode: projectConfig.plugins.claudeCode,
60
+ openCode: projectConfig.plugins.openCode
61
+ }
62
+ };
63
+ // Check service status (basic check)
64
+ if (projectConfig.services.squawk.enabled) {
65
+ try {
66
+ const response = await fetch(`http://localhost:${projectConfig.services.squawk.port}/health`);
67
+ statusData.services.squawk = response.ok ? 'running' : 'stopped';
68
+ }
69
+ catch {
70
+ statusData.services.squawk = 'stopped';
71
+ }
72
+ }
73
+ if (projectConfig.services.api.enabled) {
74
+ try {
75
+ const response = await fetch(`http://localhost:${projectConfig.services.api.port}/health`);
76
+ statusData.services.api = response.ok ? 'running' : 'stopped';
77
+ }
78
+ catch {
79
+ statusData.services.api = 'stopped';
80
+ }
81
+ }
82
+ }
83
+ }
84
+ if (options.json) {
85
+ console.log(JSON.stringify(statusData, null, 2));
86
+ }
87
+ else {
88
+ console.log(chalk.blue.bold('FleetTools Status'));
89
+ console.log(chalk.gray('═'.repeat(40)));
90
+ console.log();
91
+ // Runtime Information
92
+ console.log(chalk.blue('Runtime:'));
93
+ console.log(` Type: ${runtimeInfo.type} ${runtimeInfo.version}`);
94
+ console.log(` Platform: ${runtimeInfo.platform} (${runtimeInfo.arch})`);
95
+ console.log(` Supported: ${runtimeInfo.supported ? '✅' : '❌'}`);
96
+ console.log();
97
+ // Global Configuration
98
+ console.log(chalk.blue('Global Configuration:'));
99
+ console.log(` Config Dir: ${globalConfig.paths.configDir}`);
100
+ console.log(` Default Runtime: ${globalConfig.defaultRuntime}`);
101
+ console.log(` Auto-start Services: ${globalConfig.services.autoStart ? '✅' : '❌'}`);
102
+ console.log();
103
+ // Project Information
104
+ if (statusData.project) {
105
+ console.log(chalk.blue('Project:'));
106
+ console.log(` Name: ${statusData.project.name}`);
107
+ console.log(` Mode: ${statusData.project.mode}`);
108
+ console.log();
109
+ console.log(chalk.blue('Services:'));
110
+ console.log(` Squawk: ${statusData.services.squawk === 'running' ? '✅ Running' : '❌ Stopped'} ${statusData.project.services.squawk.enabled ? `(${statusData.project.services.squawk.port})` : '(disabled)'}`);
111
+ console.log(` API: ${statusData.services.api === 'running' ? '✅ Running' : '❌ Stopped'} ${statusData.project.services.api.enabled ? `(${statusData.project.services.api.port})` : '(disabled)'}`);
112
+ console.log(` PostgreSQL: ${statusData.project.services.postgres.enabled ? '✅ Enabled' : '❌ Disabled'} ${statusData.project.services.postgres.provider} (${statusData.project.services.postgres.port})`);
113
+ console.log();
114
+ console.log(chalk.blue('Plugins:'));
115
+ console.log(` Claude Code: ${statusData.project.plugins.claudeCode ? '✅' : '❌'}`);
116
+ console.log(` OpenCode: ${statusData.project.plugins.openCode ? '✅' : '❌'}`);
117
+ console.log();
118
+ }
119
+ else {
120
+ console.log(chalk.yellow('⚠️ Not in a FleetTools project'));
121
+ console.log(chalk.gray('Run: fleet init <project-name> to create a new project'));
122
+ console.log();
123
+ }
124
+ // Environment Check
125
+ console.log(chalk.blue('Environment:'));
126
+ console.log(` Node.js: ${commandExists('node') ? '✅' : '❌'}`);
127
+ console.log(` Bun: ${commandExists('bun') ? '✅' : '❌'}`);
128
+ console.log(` Podman: ${commandExists('podman') ? '✅' : '❌'}`);
129
+ console.log(` Docker: ${commandExists('docker') ? '✅' : '❌'}`);
130
+ console.log();
131
+ // Quick Actions
132
+ if (statusData.project) {
133
+ console.log(chalk.blue('Quick Actions:'));
134
+ if (statusData.services.squawk === 'stopped' && statusData.project.services.squawk.enabled) {
135
+ console.log(' fleet start squawk - Start Squawk service');
136
+ }
137
+ if (statusData.services.api === 'stopped' && statusData.project.services.api.enabled) {
138
+ console.log(' fleet start api - Start API service');
139
+ }
140
+ if (statusData.services.squawk === 'stopped' && statusData.services.api === 'stopped') {
141
+ console.log(' fleet start - Start all services');
142
+ }
143
+ if (statusData.services.squawk === 'running' || statusData.services.api === 'running') {
144
+ console.log(' fleet stop - Stop all services');
145
+ }
146
+ console.log(' fleet config - Manage configuration');
147
+ console.log();
148
+ }
149
+ else {
150
+ console.log(chalk.blue('Quick Actions:'));
151
+ console.log(' fleet init - Create new project');
152
+ console.log(' fleet config --global - Manage global config');
153
+ console.log();
154
+ }
155
+ }
156
+ }
157
+ catch (error) {
158
+ console.error(chalk.red('❌ Failed to get status:'), error.message);
159
+ if (process.argv.includes('--verbose')) {
160
+ console.error(error.stack);
161
+ }
162
+ }
163
+ });
164
+ }
165
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * FleetTools Global CLI
4
+ *
5
+ * Fleet management and project bootstrapping for FleetTools
6
+ * Supports both Bun and Node.js runtimes
7
+ *
8
+ * Run: fleet <command> [options]
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG"}