UNPKG

@vfarcic/dot-ai

Version:

Universal Kubernetes application deployment agent with CLI and MCP interfaces

75 lines (74 loc) 2.83 kB
"use strict"; /** * Core Pattern Operations * * Basic operations for creating, validating, and managing organizational patterns */ Object.defineProperty(exports, "__esModule", { value: true }); exports.validatePattern = validatePattern; exports.createPattern = createPattern; exports.serializePattern = serializePattern; exports.deserializePattern = deserializePattern; const crypto_1 = require("crypto"); // Simple validation function function validatePattern(request) { const errors = []; if (!request.description || request.description.trim().length === 0) { errors.push('Pattern description is required'); } if (!request.triggers || request.triggers.length === 0) { errors.push('At least one trigger is required'); } if (request.triggers && request.triggers.some(t => !t || t.trim().length === 0)) { errors.push('All triggers must be non-empty'); } if (!request.suggestedResources || request.suggestedResources.length === 0) { errors.push('At least one suggested resource is required'); } if (!request.rationale || request.rationale.trim().length === 0) { errors.push('Pattern rationale is required'); } if (!request.createdBy || request.createdBy.trim().length === 0) { errors.push('Pattern creator is required'); } return errors; } // Create a new pattern from request function createPattern(request) { // Pre-process request to clean up data before validation const cleanRequest = { ...request, description: request.description?.trim() || '', triggers: request.triggers?.map(t => t?.trim()).filter(t => t && t.length > 0) || [], rationale: request.rationale?.trim() || '', createdBy: request.createdBy?.trim() || '' }; const errors = validatePattern(cleanRequest); if (errors.length > 0) { throw new Error(`Pattern validation failed: ${errors.join(', ')}`); } return { id: (0, crypto_1.randomUUID)(), description: cleanRequest.description, triggers: cleanRequest.triggers, suggestedResources: cleanRequest.suggestedResources, rationale: cleanRequest.rationale, createdAt: new Date().toISOString(), createdBy: cleanRequest.createdBy }; } // Serialize pattern to JSON function serializePattern(pattern) { return JSON.stringify(pattern, null, 2); } // Deserialize pattern from JSON function deserializePattern(json) { const parsed = JSON.parse(json); // Basic structure validation if (!parsed.id || !parsed.description || !Array.isArray(parsed.triggers) || !Array.isArray(parsed.suggestedResources) || !parsed.rationale || !parsed.createdAt || !parsed.createdBy) { throw new Error('Invalid pattern JSON structure'); } return parsed; }