UNPKG

mcp-adr-analysis-server

Version:

MCP server for analyzing Architectural Decision Records and project architecture

256 lines 8.46 kB
/** * Deployment Status Resource - Current deployment state * URI Pattern: adr://deployment_status */ import { URLSearchParams } from 'url'; import { ResourceGenerationResult } from './index.js'; export interface DeploymentStatus { environment: string; version: string; branch: string; commit: string; commitMessage: string; lastDeploy: string; status: 'healthy' | 'degraded' | 'failed' | 'unknown'; checks: Array<{ name: string; status: 'passed' | 'failed' | 'warning'; message: string; timestamp: string; }>; dependencies: { total: number; outdated: number; vulnerable: number; }; buildInfo: { lastBuild: string; buildDuration?: number; buildStatus: 'success' | 'failure' | 'unknown'; }; deploymentReadiness: { score: number; blockers: string[]; warnings: string[]; recommendations: string[]; }; codeQualityAnalysis?: { overallScore: number; productionCodeScore: number; mockCodeIndicators: number; productionCodeThreshold: number; qualityGates: Array<{ gate: string; passed: boolean; score?: number; threshold?: number; }>; treeAnalysis?: { totalFiles: number; productionFiles: number; mockFiles: number; testFiles: number; }; }; testValidation?: { testExecutionResult: 'passed' | 'failed' | 'partial' | 'unknown'; totalTests: number; passedTests: number; failedTests: number; skippedTests: number; coverage: number; zeroToleranceEnforced: boolean; failureDetails: Array<{ suite: string; test: string; error: string; file?: string; line?: number; }>; }; deploymentHistory?: { totalDeployments: number; successfulDeployments: number; failedDeployments: number; successRate: number; recentFailures: number; rollbackFrequency: number; averageDeploymentTime: string; lastSuccessfulDeployment?: string; lastFailedDeployment?: string; trends: Array<{ metric: string; trend: 'improving' | 'degrading' | 'stable'; change: number; }>; }; adrCompliance?: { totalRequirements: number; metRequirements: number; unmetRequirements: number; complianceScore: number; violations: Array<{ requirement: string; adrId: string; severity: 'critical' | 'high' | 'medium' | 'low'; description: string; }>; }; criticalBlockers?: Array<{ category: 'tests' | 'code_quality' | 'dependencies' | 'adr_compliance' | 'deployment_history'; title: string; description: string; severity: 'critical' | 'high' | 'medium' | 'low'; resolutionSteps: string[]; autoFixable: boolean; }>; memoryIntegration?: { enabled: boolean; assessmentId?: string; historicalComparison?: { previousScore: number; currentScore: number; trend: string; improvement: number; }; patternAnalysis?: { commonFailures: string[]; successPatterns: string[]; riskFactors: string[]; }; insights?: string[]; }; gitPushStatus?: { allowed: boolean; decision: 'allowed' | 'blocked' | 'conditional'; reason: string; conditions?: string[]; }; emergencyOverride?: { active: boolean; justification?: string; approver?: string; timestamp?: string; expiresAt?: string; }; environmentResearch?: { answer: string; confidence: number; sources: string[]; needsWebSearch: boolean; }; analysisMetadata?: { operation: string; timestamp: string; confidence: number; source: 'basic' | 'comprehensive-tool'; memoryIntegration: boolean; strictMode: boolean; }; } /** * Generate comprehensive deployment status resource with readiness analysis and quality gates. * * Performs multi-dimensional deployment readiness assessment including code quality validation, * test execution, dependency health, ADR compliance, deployment history analysis, and optional * memory-based pattern recognition for predictive insights. * * **Query Parameters:** * - `operation`: Operation type (default: "check_readiness") * - `environment`: Target deployment environment (default: process.env.NODE_ENV || "production") * - `memory`: Enable memory integration for historical analysis (default: true) * - `strict`: Enable strict zero-tolerance mode (default: true) * - `comprehensive`: Use comprehensive analysis vs basic (default: true) * * **Comprehensive Mode includes:** * - TreeSitter AST-based code quality analysis with production code scoring * - Zero-tolerance test validation with detailed failure tracking * - Deployment history analysis with trend detection * - ADR compliance validation * - Memory-based pattern analysis and insights * - Critical blocker identification with auto-fix suggestions * - Git push allow/block decision logic * * @param _params - URL path parameters (currently unused, reserved for future routing) * @param searchParams - URL query parameters controlling analysis behavior * * @returns Promise resolving to resource generation result containing: * - data: Complete deployment status with health metrics and quality gates * - contentType: "application/json" * - lastModified: ISO timestamp of generation * - cacheKey: Unique identifier based on operation/environment/options * - ttl: Cache duration (180 seconds / 3 minutes) * - etag: Entity tag for cache validation * * @throws {McpAdrError} When deployment status generation fails due to: * - Invalid operation or environment parameters * - Deployment-readiness-tool execution failure * - Test execution failures (in strict mode) * - Cache operation errors * * @example * ```typescript * // Basic usage with comprehensive analysis * const status = await generateDeploymentStatusResource( * {}, * new URLSearchParams('operation=check_readiness&environment=production') * ); * * console.log(`Status: ${status.data.status}`); * console.log(`Readiness score: ${status.data.deploymentReadiness.score}`); * console.log(`Blockers: ${status.data.deploymentReadiness.blockers.length}`); * * // Check if deployment is allowed * if (status.data.gitPushStatus?.decision === 'blocked') { * console.error(`Deployment blocked: ${status.data.gitPushStatus.reason}`); * process.exit(1); * } * * // Example with basic mode (faster, less detailed) * const basicStatus = await generateDeploymentStatusResource( * {}, * new URLSearchParams('comprehensive=false&memory=false') * ); * * // Expected output structure: * { * data: { * environment: "production", * status: "healthy", * version: "2.0.22", * deploymentReadiness: { * score: 95, * blockers: [], * warnings: ["Minor test coverage gaps"], * recommendations: ["Increase integration test coverage"] * }, * codeQualityAnalysis: { * overallScore: 92, * productionCodeScore: 95, * qualityGates: [...] * }, * testValidation: { * testExecutionResult: "passed", * totalTests: 150, * passedTests: 150, * failedTests: 0, * coverage: 85 * }, * gitPushStatus: { * allowed: true, * decision: "allowed", * reason: "All quality gates passed" * } * }, * contentType: "application/json", * cacheKey: "deployment-status:check_readiness:production:true:true:true", * ttl: 180 * } * ``` * * @since v2.0.0 * @see {@link deploymentReadiness} tool for underlying analysis engine * @see {@link generateDeploymentHistoryResource} for historical deployment data */ export declare function generateDeploymentStatusResource(_params?: Record<string, string>, searchParams?: URLSearchParams): Promise<ResourceGenerationResult>; //# sourceMappingURL=deployment-status-resource.d.ts.map