UNPKG

mcp-ai-agent-guidelines

Version:

A comprehensive Model Context Protocol server providing advanced tools, resources, and prompts for implementing AI agent best practices

61 lines 2.35 kB
import { BaseDiagramHandler } from "./base.handler.js"; /** * Handler for quadrant chart diagrams. * Generates priority/urgency matrix visualizations. */ export class QuadrantHandler extends BaseDiagramHandler { diagramType = "quadrant"; generate(description, theme) { this.validateInput(description); const lines = ["quadrantChart"]; if (theme) lines.unshift(`%%{init: {'theme':'${theme}'}}%%`); const { title, xAxis, yAxis, quadrants, points } = this.parseQuadrantDescription(description); lines.push(`title ${title}`); lines.push(`x-axis ${xAxis[0]} --> ${xAxis[1]}`); lines.push(`y-axis ${yAxis[0]} --> ${yAxis[1]}`); if (quadrants.length === 4) { lines.push(`quadrant-1 ${quadrants[0]}`); lines.push(`quadrant-2 ${quadrants[1]}`); lines.push(`quadrant-3 ${quadrants[2]}`); lines.push(`quadrant-4 ${quadrants[3]}`); } if (points.length > 0) { for (const point of points) { lines.push(point); } } else { // Fallback template lines.push("Item A: [0.3, 0.6]"); lines.push("Item B: [0.7, 0.8]"); lines.push("Item C: [0.2, 0.3]"); } return lines.join("\n"); } /** * Parse natural language description to extract quadrant data. */ parseQuadrantDescription(description) { const title = "Priority Matrix"; const xAxis = ["Low", "High"]; const yAxis = ["Low", "High"]; const quadrants = ["Plan", "Do", "Delegate", "Delete"]; const points = []; // Extract items to plot const sentences = description .split(/[.!?\n]+/) .map((s) => s.trim()) .filter((s) => s.length > 0); for (let i = 0; i < Math.min(sentences.length, 8); i++) { const item = sentences[i].length > 20 ? `${sentences[i].substring(0, 17)}...` : sentences[i]; const x = (0.2 + Math.random() * 0.6).toFixed(1); const y = (0.2 + Math.random() * 0.6).toFixed(1); points.push(`${item}: [${x}, ${y}]`); } return { title, xAxis, yAxis, quadrants, points }; } } //# sourceMappingURL=quadrant.handler.js.map