{"name":"AI Icon Generator","version":"2.1.0","description":"Generate icons using OpenRouter AI with configurable templates","dashboard":"Web UI for icon generation and gallery","usage":"/?id=<id>&subject=<subject>&context=<context>&template=<template>","defaultTemplate":"line-icon","example":"/?id=cronjob-trigger&subject=Cronjob%20Trigger&context=Triggers%20at%20fixed%20intervals&template=line-icon","templates":[{"id":"line-icon","name":"Isometric Line Art Icon","description":"Clean isometric 3D line-art icons with consistent perspective and black-on-white style","features":{"model":"google/gemini-3-pro-image-preview","searchReferences":true,"autocrop":true,"vectorize":{"maxColors":1,"palette":"#000000 ~ 0.2;","drawStyle":"fill_shapes"}}},{"id":"moebius-icon","name":"Moebius-Style Icon","description":"Surreal, whimsical icons inspired by Moebius (Jean Giraud) with bold outlines, flat colors, and isometric perspective","features":{"model":"google/gemini-3-pro-image-preview","searchReferences":true,"autocrop":true,"vectorize":{"maxColors":12,"palette":"#000000 ~ 0.3; #FFFFFF ~ 0.1;","drawStyle":"fill_shapes"}}},{"id":"moebius-cover-bw","name":"Moebius Black & White Cover","description":"Detailed Moebius-style black and white illustrations for banners and covers - intricate line work","features":{"model":"google/gemini-3-pro-image-preview","searchReferences":false,"autocrop":true,"vectorize":{"maxColors":1,"palette":"#000000 ~ 0.2;","drawStyle":"fill_shapes"}}},{"id":"moebius-cover-color","name":"Moebius Color Cover","description":"Vibrant, colorful Moebius-style illustrations for banners and covers with text integration - perfect for blog headers and integration pages","features":{"model":"google/gemini-3-pro-image-preview","searchReferences":false,"autocrop":false,"vectorize":{"maxColors":16,"palette":"#000000 ~ 0.3; #FFFFFF ~ 0.05;","drawStyle":"fill_shapes"}}},{"id":"b3os-app","name":"B3OS App Icon","description":"macOS-style 3D neumorphic app icon with full-bleed gradient background and glossy soft-shadow glyph. PNG only, edge-to-edge fill (no rounded tile, no border, no padding).","features":{"model":"google/gemini-3-pro-image-preview","searchReferences":true,"autocrop":false,"vectorize":{"maxColors":16,"drawStyle":"fill_shapes"}}}],"logo":{"fetchLogo":"GET /logo/<name> - Fetch a logo by name (e.g., /logo/philips_hue)","uploadLogo":"PUT /logo/<name> - Manually upload/replace a logo (requires API key)","deleteLogo":"DELETE /logo/<name> - Delete a logo (requires API key)","listLogos":"GET /logos - List all stored logos","description":"Searches for logos using Firecrawl HD Image Search, uses AI to select the best square logo, stores in R2, and serves with caching. Logos can also be manually uploaded or replaced.","example":"/logo/philips_hue, /logo/google, /logo/spotify"},"gallery":{"listIcons":"GET /gallery - List all generated icons from R2","description":"Returns array of icons with SVG/PNG URLs"},"status":{"checkStatus":"GET /status/<id> - Check workflow status for an icon (no auth required)","description":"Returns workflow progress, including running/complete/errored status"},"management":{"clearAll":"DELETE /clear - Clear all cached icons (requires API key)","clearOne":"DELETE /clear/<id> - Clear a specific icon by ID (requires API key)","regenerateOne":"POST /regenerate/<id> - Regenerate final SVG from original (requires API key)","regenerateAll":"POST /regenerate - Regenerate all final SVGs from originals (requires API key)","autocropOne":"POST /autocrop/<id> - Autocrop a specific SVG using CNCF API (requires API key)","autocropAll":"POST /autocrop - Autocrop all SVGs using CNCF API (requires API key)"},"features":{"templateSystem":"Configurable templates for different icon styles and rendering options","duplicatePrevention":"Prevents multiple workflows from running for the same icon ID simultaneously","statusTracking":"Track workflow progress in real-time via /status/<id>","logoFetching":"Fetch logos by name with AI-powered selection for best square logo"},"authentication":"Management endpoints require admin PIN via Authorization or x-api-key header"}