Skip to main content
Glama
test-unstructured-markdown-analysis.js6.16 kB
#!/usr/bin/env node /** * Test analyze_content_for_widgets with unstructured markdown * This tests what Claude Desktop actually sends (plain markdown text) */ import { ContentWidgetAnalyzer } from '../../src/tools/analyze-content-for-widgets.js'; // Simulate what Claude Desktop actually creates - unstructured markdown const unstructuredPhotosynthesisContent = { title: "Aula de Ciências: Fotossíntese - A Fábrica Verde das Plantas", subject: "Ciências", gradeLevel: "7º ano", // This is what Claude Desktop actually sends - just plain text content content: `Aula de Ciências: Fotossíntese - A Fábrica Verde das Plantas Objetivos de Aprendizagem Ao final desta aula, você será capaz de: - Explicar o que é fotossíntese e sua importância - Identificar os componentes necessários para a fotossíntese - Descrever o processo da fotossíntese passo a passo Introdução: O Mistério das Plantas Verdes Você já se perguntou como as plantas conseguem crescer e produzir seu próprio alimento sem precisar "comer" como nós? O que é Fotossíntese? A fotossíntese é o processo pelo qual as plantas verdes capturam energia da luz solar e a transformam em energia química. Os Ingredientes da Fotossíntese Para que a fotossíntese aconteça, as plantas precisam de três ingredientes principais: 1. Luz solar - A fonte de energia para todo o processo 2. Água (H₂O) - Absorvida pelas raízes do solo 3. Gás carbônico (CO₂) - Retirado do ar através dos estômatos das folhas O Processo da Fotossíntese: Passo a Passo Fase 1: Captura da Energia Solar - A clorofila nas folhas absorve a luz solar - Esta energia luminosa é convertida em energia química Experiência Prática: Observando a Fotossíntese Material necessário: - Folha de elódea (planta aquática) - Copo com água - Luz intensa Procedimento: 1. Coloque a elódea no copo com água 2. Exponha à luz intensa 3. Observe as bolhas de oxigênio se formando Vocabulário Importante - Clorofila: Pigmento verde que captura luz solar - Estômatos: Poros nas folhas para trocas gasosas - Glicose: Açúcar produzido na fotossíntese - Cloroplastos: Organelas onde ocorre a fotossíntese Avaliação: Quiz da Fotossíntese Questão 1: Quais são os três ingredientes principais necessários para a fotossíntese? a) Água, oxigênio e luz solar b) Água, gás carbônico e luz solar c) Glicose, água e gás carbônico d) Clorofila, oxigênio e água Questão 2: Onde nas plantas ocorre principalmente a fotossíntese? a) Nas raízes b) No caule c) Nas flores d) Nas folhas Questão 3: O que a fotossíntese produz? a) Apenas oxigênio b) Apenas glicose c) Glicose e oxigênio d) Água e gás carbônico` }; async function testUnstructuredAnalysis() { console.log('🧪 Testing analyze_content_for_widgets with unstructured markdown (real Claude Desktop input)'); try { const analyzer = new ContentWidgetAnalyzer(); // Test with claudeContent containing unstructured content (what Claude Desktop actually sends) const result = await analyzer.analyzeContent({ claudeContent: unstructuredPhotosynthesisContent }); console.log(' ✓ Analysis completed successfully'); console.log(' 📊 Result structure:', { success: result.success, contentLength: result.debug?.contentLength || 0, segmentsAnalyzed: result.debug?.segmentsAnalyzed || 0, widgetTypes: result.data?.selectedWidgetTypes?.map(w => w.type) || [], totalWidgets: result.data?.selectedWidgetTypes?.length || 0 }); // Check what content was actually processed console.log(' 📝 Content processed:'); console.log(` Original content length: ${unstructuredPhotosynthesisContent.content.length} characters`); console.log(` Processed content length: ${result.data?.contentStructure?.originalContent?.length || 0} characters`); // Check segments const segments = result.data?.contentStructure?.segments || []; console.log(` 🔍 Content segments detected: ${segments.length}`); segments.forEach((segment, i) => { console.log(` ${i+1}. Type: ${segment.type}, Content: "${segment.content.substring(0, 50)}..."`); if (segment.type === 'assessment' || segment.type === 'vocabulary') { console.log(` 🎯 SPECIAL SECTION DETECTED: ${segment.type}`); } }); // Check widget recommendations const recommendations = result.data?.widgetRecommendations || []; console.log(` 🎯 Widget recommendations: ${recommendations.length}`); recommendations.forEach((rec, i) => { console.log(` ${i+1}. ${rec.widgetType} (confidence: ${rec.confidence})`); }); if (result.success) { console.log(' 🎉 ANALYSIS SUCCESSFUL'); // Check for specific issues const hasQuiz = result.data?.selectedWidgetTypes?.some(w => w.type === 'quiz-1'); const hasFlashcards = result.data?.selectedWidgetTypes?.some(w => w.type === 'flashcards-1'); const textWidgetCount = result.data?.selectedWidgetTypes?.find(w => w.type === 'text-1')?.count || 0; console.log(' 🔍 Content preservation check:'); console.log(` Quiz detected: ${hasQuiz ? '✓' : '✗'}`); console.log(` Vocabulary/Flashcards detected: ${hasFlashcards ? '✓' : '✗'}`); console.log(` Text widgets count: ${textWidgetCount}`); if (textWidgetCount < 3) { console.log(' ⚠️ WARNING: Too few text widgets - content may be over-compressed'); } if (!hasQuiz) { console.log(' ⚠️ WARNING: Quiz section not detected despite being present in content'); } if (!hasFlashcards) { console.log(' ⚠️ WARNING: Vocabulary section not detected despite being present in content'); } } else { console.log(' ❌ ANALYSIS FAILED'); console.log(' Error:', result.error?.message); } } catch (error) { console.error(' ❌ Test failed with error:', error.message); } } // Run test testUnstructuredAnalysis().catch(console.error);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rkm097git/euconquisto-composer-mcp-poc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server