import * as plugins from './plugins.js'; import * as paths from './paths.js'; import { Tspm, type IProcessConfig } from './classes.tspm.js'; import { Logger, LogLevel, handleError, TspmError, ProcessError, ConfigError, ValidationError } from './utils.errorhandler.js'; // Define interface for CLI arguments interface CliArguments { _: (string | number)[]; [key: string]: any; } export const run = async (): Promise => { const cliLogger = new Logger('CLI'); const tspmProjectinfo = new plugins.projectinfo.ProjectInfo(paths.packageDir); const tspm = new Tspm(); // Check if debug mode is enabled const debugMode = process.env.TSPM_DEBUG === 'true'; if (debugMode) { cliLogger.setLevel(LogLevel.DEBUG); cliLogger.debug('Debug mode enabled'); } const smartcliInstance = new plugins.smartcli.Smartcli(); smartcliInstance.addVersion(tspmProjectinfo.npm.version); // Default command - show help and list processes smartcliInstance.standardCommand().subscribe({ next: async (argvArg: CliArguments) => { console.log(`TSPM - TypeScript Process Manager v${tspmProjectinfo.npm.version}`); console.log('Usage: tspm [command] [options]'); console.log('\nCommands:'); console.log(' start