import { ContentGenerator, ComponentDefinition } from "../src/index"; import dotenv from "dotenv"; import path from "path"; import fs from "fs"; import { fileURLToPath } from "url"; // Fix __dirname for ESM const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // Load .env from mintel.me (since that's where the key is) dotenv.config({ path: path.resolve(__dirname, "../../../../mintel.me/apps/web/.env"), }); async function main() { const apiKey = process.env.OPENROUTER_API_KEY || process.env.OPENROUTER_KEY; if (!apiKey) { console.error("āŒ OPENROUTER_API_KEY not found"); process.exit(1); } const generator = new ContentGenerator(apiKey); const draftContent = `# Improving User Retention User retention is key. You need to keep users engaged. Offer them value and they will stay. If they have questions, they should contact support.`; const availableComponents: ComponentDefinition[] = [ { name: "InfoCard", description: "A colored box to highlight important tips or warnings.", usageExample: 'Always measure retention.', }, { name: "CallToAction", description: "A prominent button for conversion.", usageExample: 'Get in Touch', }, ]; console.log("šŸ“„ Original Content:"); console.log(draftContent); console.log("\nšŸš€ Optimizing content with components...\n"); try { const post = await generator.optimizePost(draftContent, { enhanceFacts: true, addDiagrams: false, // Skip diagrams for this test to focus on components addMemes: false, availableComponents, }); console.log("\n\nāœ… OPTIMIZATION COMPLETE"); console.log("--------------------------------------------------"); console.log(post.content); console.log("--------------------------------------------------"); // Save to file const outputPath = path.join(__dirname, "optimized-components.md"); fs.writeFileSync(outputPath, post.content); console.log(`šŸ“„ Saved output to: ${outputPath}`); } catch (error) { console.error("āŒ Optimization failed:", error); } } main();