test-unstructured-markdown-analysis.js•6.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);