Skip to main content
Glama
test-biomas-sections-fix.js9.43 kB
#!/usr/bin/env node /** * Test the sections array format fix * This verifies Claude Desktop's direct-to-tools format is handled correctly */ import { ContentWidgetAnalyzer } from '../../src/tools/analyze-content-for-widgets.js'; // Exact format from Biomas transcript when Claude Desktop went directly to tools const biomasSectionsFormat = { title: "Os Biomas do Brasil - Uma Viagem pela Biodiversidade Nacional", duration: 35, homework: "Escolha um bioma e pesquise sobre uma espécie animal típica dele. Prepare uma apresentação de 3 minutos sobre as adaptações dessa espécie ao ambiente do bioma escolhido.", sections: [ { type: "introduction", title: "Descobrindo os Tesouros Naturais do Brasil", content: "Você sabia que o Brasil é um dos países mais biodiversos do mundo? Imagine uma jornada pelos diferentes ambientes naturais do nosso país: desde as densas florestas amazônicas até os campos abertos do Cerrado, passando pelas praias da Mata Atlântica e pelos manguezais costeiros. Cada um desses ambientes únicos é chamado de bioma, e hoje vamos explorar essa incrível diversidade natural que faz do Brasil um verdadeiro tesouro ecológico mundial." }, { type: "concept_explanation", title: "O que são Biomas?", content: "Bioma é um conjunto de ecossistemas terrestres com características semelhantes de vegetação, clima, solo e fauna. É como se fosse uma 'casa' natural onde diferentes seres vivos compartilham o mesmo tipo de ambiente e se adaptaram às condições locais. No Brasil, temos seis biomas principais, cada um com suas próprias características e importância para o equilíbrio ambiental do planeta." }, { type: "main_content", title: "Os Seis Biomas Brasileiros", content: { pampa: { area: "Menor bioma em área", fauna: "Nandu, graxaim, veado-campeiro, gato-palheiro", title: "Pampa - Os Campos Sulinos", climate: "Subtropical", location: "Rio Grande do Sul", importance: "Importante para pecuária, conservação da água", vegetation: "Campos nativos, gramíneas, poucas árvores" }, cerrado: { area: "Segundo maior bioma brasileiro", fauna: "Lobo-guará, tatu-canastra, ema, seriema, jaguatirica", title: "Cerrado - A Savana Brasileira", climate: "Duas estações bem definidas: seca e chuvosa", location: "Região Centro-Oeste e partes do Nordeste", importance: "Importante para agricultura, nascentes de grandes rios, rica biodiversidade", vegetation: "Árvores baixas e tortuosas, gramíneas, ipês, pequizeiros" }, amazonia: { area: "Ocupa cerca de 60% do território brasileiro", fauna: "Onça-pintada, boto-cor-de-rosa, tucano, preguiça, araras", title: "Amazônia - A Floresta Tropical", climate: "Quente e úmido o ano todo", location: "Região Norte e parte do Centro-Oeste", importance: "Regula o clima global, abriga maior biodiversidade do mundo, fornece água doce", vegetation: "Floresta densa com árvores de grande porte, como castanheira, mogno e seringueira" }, caatinga: { area: "Única no mundo, exclusivamente brasileira", fauna: "Sagui-do-nordeste, asa-branca, preá, cobra-coral", title: "Caatinga - O Sertão Nordestino", climate: "Semiárido, com chuvas irregulares", location: "Região Nordeste", importance: "Adaptação única à vida no semiárido, rica em espécies endêmicas", vegetation: "Plantas adaptadas à seca: cactos, mandacaru, xiquexique" }, pantanal: { area: "Menor bioma brasileiro em área", fauna: "Maior concentração de fauna: jacaré, capivara, tuiuiú, onça-pintada", title: "Pantanal - A Maior Planície Alagável", climate: "Tropical com duas estações: seca e chuvosa", location: "Mato Grosso e Mato Grosso do Sul", importance: "Berçário de vida aquática, controle de enchentes", vegetation: "Campos alagados, plantas aquáticas, palmeiras" }, mata_atlantica: { area: "Hoje restam apenas 12% da cobertura original", fauna: "Mico-leão-dourado, muriqui, saíra-sete-cores, jaguatirica", title: "Mata Atlântica - A Floresta Costeira", climate: "Tropical úmido", location: "Faixa litorânea do país", importance: "Protege a costa, onde vive 70% da população brasileira", vegetation: "Floresta densa, bromélias, orquídeas, pau-brasil" } } }, { type: "interactive_activity", title: "Atividade Prática: Explorando os Biomas", content: "Agora vamos testar seus conhecimentos! Relacione cada característica ao bioma correto e descubra curiosidades sobre nossa biodiversidade." }, { type: "vocabulary", terms: [ { term: "Bioma", definition: "Conjunto de ecossistemas com características semelhantes de vegetação, clima e fauna" }, { term: "Biodiversidade", definition: "Variedade de seres vivos existentes em um ambiente" }, { term: "Ecossistema", definition: "Sistema natural onde seres vivos interagem entre si e com o ambiente" } ] } ] }; async function testBiomasSectionsFix() { console.log('🧪 Testing Biomas sections array format fix'); console.log('📋 This tests the exact format Claude Desktop sends when going directly to tools'); const analyzer = new ContentWidgetAnalyzer(); try { console.log('📊 Input analysis:'); console.log(` Title: "${biomasSectionsFormat.title}"`); console.log(` Sections: ${biomasSectionsFormat.sections.length}`); console.log(` Has homework: ${!!biomasSectionsFormat.homework}`); // Log section types biomasSectionsFormat.sections.forEach((section, i) => { console.log(` Section ${i+1}: type="${section.type}", title="${section.title}"`); }); const result = await analyzer.analyzeContent({ claudeContent: biomasSectionsFormat }); console.log('\n✅ Analysis completed successfully'); console.log('📊 Results:'); console.log(` Success: ${result.success}`); console.log(` Content length: ${result.debug?.contentLength || 0} characters`); console.log(` Segments analyzed: ${result.debug?.segmentsAnalyzed || 0}`); console.log(` Widget types: ${result.data?.selectedWidgetTypes?.length || 0}`); // Check content preservation const previousLength = 61; // From transcript - only title was processed const currentLength = result.debug?.contentLength || 0; const improvement = Math.round((currentLength / previousLength) * 100); console.log('\n📈 Content preservation comparison:'); console.log(` Before fix: ${previousLength} characters (title only)`); console.log(` After fix: ${currentLength} characters`); console.log(` Improvement: ${improvement}% (${Math.round(currentLength / previousLength)}x more content)`); // Check segment details const segments = result.data?.contentStructure?.segments || []; console.log('\n📋 Detected segments:'); segments.forEach((segment, i) => { console.log(` ${i+1}. "${segment.title}" (${segment.type}) - ${segment.content.length} chars`); }); // Check for bioma content const biomaContent = segments.find(s => s.content.includes('Amazônia') || s.content.includes('Cerrado')); const hasVocabulary = segments.some(s => s.type === 'vocabulary' || s.content.includes('Bioma:')); const hasActivity = segments.some(s => s.type === 'assessment' || s.title?.includes('Atividade')); console.log('\n🔍 Content validation:'); console.log(` Bioma descriptions found: ${biomaContent ? '✅' : '❌'}`); console.log(` Vocabulary terms found: ${hasVocabulary ? '✅' : '❌'}`); console.log(` Interactive activity found: ${hasActivity ? '✅' : '❌'}`); // Check widget diversity const widgetTypes = result.data?.selectedWidgetTypes?.map(w => w.type) || []; const uniqueTypes = [...new Set(widgetTypes)]; console.log('\n🎯 Widget types detected:'); console.log(` Unique types: ${uniqueTypes.length}`); console.log(` Types: ${uniqueTypes.join(', ')}`); if (currentLength > 2000 && uniqueTypes.length >= 4) { console.log('\n🎉 SUCCESS: Sections array format handling working correctly!'); console.log(' ✅ Full content from sections extracted'); console.log(' ✅ Nested content objects handled'); console.log(' ✅ Widget diversity achieved'); } else { console.log('\n⚠️ Partial success - may need further refinement'); if (currentLength <= 2000) { console.log(' ⚠️ Content extraction may be incomplete'); } if (uniqueTypes.length < 4) { console.log(' ⚠️ Widget diversity limited'); } } } catch (error) { console.error('\n❌ Test failed:', error.message); console.error('Stack:', error.stack); } } // Run the test testBiomasSectionsFix().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