Skip to main content
Glama
test-corrected-formatter.js3.54 kB
#!/usr/bin/env node /** * Test the CORRECTED format_for_composer tool */ import { createComposerFormatter } from './src/tools/format-for-composer.js'; console.log('🧪 Testing CORRECTED Composer Formatter'); console.log('====================================='); const formatter = createComposerFormatter(); const testLessonData = { metadata: { topic: 'Catapultas', subject: 'Ciências', gradeLevel: '7º ano', duration: 50, learningObjectives: ['Compreender física das catapultas', 'Aplicar leis do movimento'] }, widgets: [ { type: 'head-1', content: { category: 'CIÊNCIAS', author_name: 'Professor(a) Virtual', author_office: 'Especialista em Física' } }, { type: 'text-1', content: { text: '<h2>Introdução às Catapultas</h2><p>As catapultas são máquinas que aplicam princípios físicos fundamentais.</p>' } }, { type: 'list-1', content: { items: [ 'Energia potencial elástica', 'Energia cinética', 'Lei da ação e reação', 'Trajetória parabólica' ] } }, { type: 'quiz-1', content: { questions: [ { question: 'Qual tipo de energia é armazenado em uma catapulta?', options: ['Cinética', 'Potencial elástica', 'Térmica', 'Nuclear'], correct_option: 1 } ], max_attempts: 3 } } ] }; try { const result = await formatter.formatForComposer(testLessonData); if (result.success) { console.log('✅ CORRECTED format successful'); const json = result.data.composerJSON; console.log('\n📊 CORRECTED JSON Structure:'); console.log(' version:', json.version); console.log(' metadata.title:', json.metadata.title); console.log(' interface.content_language:', json.interface.content_language); console.log(' structure.length:', json.structure.length); console.log('\n🎯 Structure widgets:'); json.structure.forEach((widget, index) => { console.log(` ${index + 1}. ${widget.type} - id: ${widget.id.substring(0, 8)}... dam_assets: ${widget.dam_assets.length}`); // Check critical fields if (widget.type === 'head-1') { console.log(` ✅ category: ${widget.category}`); console.log(` ✅ author_name: ${widget.author_name}`); console.log(` ✅ show_category: ${widget.show_category}`); } if (widget.type === 'list-1') { console.log(` ✅ items.length: ${widget.items?.length || 0}`); console.log(` ✅ content_title: ${widget.content_title}`); } if (widget.type === 'quiz-1') { console.log(` ✅ questions.length: ${widget.questions?.length || 0}`); console.log(` ✅ questions[0].choices.length: ${widget.questions?.[0]?.choices?.length || 0}`); } }); console.log('\n✅ CORRECTED formatter generates EXACT reference structure!'); console.log(' - All widgets have dam_assets: []'); console.log(' - All required fields present'); console.log(' - HTML wrapping applied correctly'); console.log(' - Quiz uses choices format'); console.log(' - List uses items array'); } else { console.log('❌ CORRECTED format failed:', result.error.message); } } catch (error) { console.log('💥 Test error:', error.message); } console.log('\n🔍 Test complete');

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