"""
Shared constants for Art-DAG servers.
"""

# CDN URLs
TAILWIND_CDN = "https://cdn.tailwindcss.com?plugins=typography"
HTMX_CDN = "https://unpkg.com/htmx.org@1.9.10"
CYTOSCAPE_CDN = "https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.28.1/cytoscape.min.js"
DAGRE_CDN = "https://cdnjs.cloudflare.com/ajax/libs/dagre/0.8.5/dagre.min.js"
CYTOSCAPE_DAGRE_CDN = "https://cdn.jsdelivr.net/npm/cytoscape-dagre@2.5.0/cytoscape-dagre.min.js"

# Node colors for DAG visualization
NODE_COLORS = {
    "SOURCE": "#3b82f6",    # Blue - input sources
    "EFFECT": "#22c55e",    # Green - processing effects
    "OUTPUT": "#a855f7",    # Purple - final outputs
    "ANALYSIS": "#f59e0b",  # Amber - analysis nodes
    "_LIST": "#6366f1",     # Indigo - list aggregation
    "default": "#6b7280",   # Gray - unknown types
}

# Status colors
STATUS_COLORS = {
    "completed": "bg-green-600",
    "cached": "bg-blue-600",
    "running": "bg-yellow-600",
    "pending": "bg-gray-600",
    "failed": "bg-red-600",
}

# Tailwind dark theme configuration
TAILWIND_CONFIG = """
<script>
tailwind.config = {
    darkMode: 'class',
    theme: {
        extend: {
            colors: {
                dark: {
                    600: '#374151',
                    700: '#1f2937',
                    800: '#111827',
                    900: '#030712',
                }
            }
        }
    }
}
</script>
<style type="text/tailwindcss">
@layer utilities {
    .prose-invert {
        --tw-prose-body: #d1d5db;
        --tw-prose-headings: #f9fafb;
        --tw-prose-lead: #9ca3af;
        --tw-prose-links: #60a5fa;
        --tw-prose-bold: #f9fafb;
        --tw-prose-counters: #9ca3af;
        --tw-prose-bullets: #6b7280;
        --tw-prose-hr: #374151;
        --tw-prose-quotes: #f3f4f6;
        --tw-prose-quote-borders: #374151;
        --tw-prose-captions: #9ca3af;
        --tw-prose-code: #f9fafb;
        --tw-prose-pre-code: #e5e7eb;
        --tw-prose-pre-bg: #1f2937;
        --tw-prose-th-borders: #4b5563;
        --tw-prose-td-borders: #374151;
    }
}
</style>
"""

# Default pagination settings
DEFAULT_PAGE_SIZE = 20
MAX_PAGE_SIZE = 100
