microfox
Version:
Universal CLI tool for creating modern TypeScript packages with npm availability checking
1 lines • 9.89 kB
Source Map (JSON)
{"version":3,"sources":["../src/commands/status.ts"],"sourcesContent":["import { Command } from 'commander';\nimport chalk from 'chalk';\nimport axios from 'axios';\nimport inquirer from 'inquirer';\n\nconst API_BASE_URL = 'https://staging-cicd.microfox.app/api/deployment-status/agent/status/';\n\nasync function getRunId(runId?: string): Promise<string> {\n if (runId) {\n return runId;\n }\n const { promptedRunId } = await inquirer.prompt([\n {\n type: 'input',\n name: 'promptedRunId',\n message: 'Please enter the deployment Run ID:',\n validate: (input) => !!input || 'Run ID cannot be empty.',\n },\n ]);\n return promptedRunId;\n }\n \n\nasync function getDeploymentData(runId: string) {\n try {\n const response = await axios.get(`${API_BASE_URL}${runId}`);\n return response.data;\n } catch (error) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n console.error(chalk.red(`❌ Error: Deployment with Run ID \"${runId}\" not found.`));\n } else {\n console.error(chalk.red('❌ An error occurred while fetching deployment status:'));\n console.error(error);\n }\n process.exit(1);\n }\n}\n\nasync function statusAction(runId?: string): Promise<void> {\n const finalRunId = await getRunId(runId);\n const data = await getDeploymentData(finalRunId);\n const deployment = data.data.deployment;\n\n console.log(chalk.cyan.bold('🚀 Deployment Status'));\n console.log(chalk.gray('----------------------------------------'));\n console.log(`${chalk.bold('Run ID:')} ${deployment.sha}`);\n console.log(`${chalk.bold('Status:')} ${chalk.green(deployment.status)}`);\n console.log(`${chalk.bold('Description:')} ${deployment.statusDescription}`);\n console.log(`${chalk.bold('Stage:')} ${deployment.stage}`);\n console.log(`${chalk.bold('Start Time:')} ${deployment.startTime ? new Date(deployment.startTime).toLocaleString() : 'N/A'}`);\n console.log(`${chalk.bold('End Time:')} ${deployment.endTime ? new Date(deployment.endTime).toLocaleString() : 'N/A'}`);\n console.log(`${chalk.bold('Base URL:')} ${deployment.baseUrl ? chalk.underline.blue(deployment.baseUrl) : 'N/A'}`);\n console.log(chalk.gray('----------------------------------------'));\n}\n\nasync function logsAction(runId?: string): Promise<void> {\n const finalRunId = await getRunId(runId);\n const data = await getDeploymentData(finalRunId);\n const logs = data.data.deploymentLogs;\n\n console.log(chalk.cyan.bold('📜 Deployment Logs'));\n console.log(chalk.gray('----------------------------------------'));\n console.log(logs);\n console.log(chalk.gray('----------------------------------------'));\n}\n\nasync function metricsAction(runId?: string): Promise<void> {\n const finalRunId = await getRunId(runId);\n const data = await getDeploymentData(finalRunId);\n const metrics = data.data.deployment.metrics;\n\n console.log(chalk.cyan.bold('📊 Deployment Metrics'));\n console.log(chalk.gray('----------------------------------------'));\n\n console.log(chalk.bold.underline('System'));\n console.log(` Platform: ${metrics.system.platform}`);\n console.log(` Architecture: ${metrics.system.arch}`);\n console.log(` Node Version: ${metrics.system.nodeVersion}`);\n\n console.log(chalk.bold.underline('\\nTiming (ms)'));\n for (const [step, duration] of Object.entries(metrics?.timing?.stepDurations || {})) {\n console.log(` ${step}:`.padEnd(15) + `${duration ? `${duration}ms` : 'N/A'}`);\n }\n console.log(` Total Duration:`.padEnd(15) + `${metrics?.timing?.totalDuration ? `${metrics.timing.totalDuration}ms` : 'N/A'}`);\n\n console.log(chalk.bold.underline('\\nResources'));\n console.log(chalk.bold(' CPU:'));\n console.log(` Peak: ${metrics?.resources?.cpu?.peak ? `${metrics?.resources?.cpu?.peak}${metrics?.resources?.cpu?.usageUnits}` : 'N/A'}`);\n console.log(` Average: ${metrics?.resources?.cpu?.average ? `${metrics?.resources?.cpu?.average}${metrics?.resources?.cpu?.usageUnits}` : 'N/A'}`);\n console.log(chalk.bold(' Memory:'));\n console.log(` Peak: ${metrics?.resources?.memory?.peak ? `${metrics?.resources?.memory?.peak.toFixed(2)}${metrics?.resources?.memory?.usageUnits}` : 'N/A'}`);\n console.log(` Average: ${metrics?.resources?.memory?.average ? `${metrics?.resources?.memory?.average.toFixed(2)}${metrics?.resources?.memory?.usageUnits}` : 'N/A'}`);\n console.log(chalk.bold(' Disk:'));\n console.log(` Final Size: ${metrics?.resources?.diskSize?.final ? `${(metrics?.resources?.diskSize?.final / (1024 * 1024)).toFixed(2)} MB` : 'N/A'}`);\n\n console.log(chalk.gray('----------------------------------------'));\n}\n\nexport const statusCommand = new Command('status')\n .description('Check the deployment status of your agent')\n .argument('[runId]', 'The deployment Run ID')\n .action(async (runId) => {\n try {\n await statusAction(runId);\n } catch (error) {\n // Error is already handled in getDeploymentData, just exit\n }\n });\n\nexport const logsCommand = new Command('logs')\n .description('View the deployment logs for your agent')\n .argument('[runId]', 'The deployment Run ID')\n .action(async (runId) => {\n try {\n await logsAction(runId);\n } catch (error) {\n // Error is already handled in getDeploymentData, just exit\n }\n });\n\nexport const metricsCommand = new Command('metrics')\n .description('View the deployment metrics for your agent')\n .argument('[runId]', 'The deployment Run ID')\n .action(async (runId) => {\n try {\n await metricsAction(runId);\n } catch (error) {\n // Error is already handled in getDeploymentData, just exit\n }\n }); "],"mappings":"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","names":[]}