# ============================================================================= # External Application Dependencies # ============================================================================= # # Defines how lilith-platform integrates with external applications. # These are applications that live in separate repositories but are part of # the development environment. # # Location: ~/Code/@applications/ # # IMPORTANT: Port configurations are owned by the external repos. # lilith-platform loads and consumes them via: # tooling/scripts/orchestration/external-config-loader.ts # # Integration Patterns: # - docker-compose: Service runs in docker-compose.dev-all.yml # - systemd: Service runs as a systemd unit at host level # - manual: Service must be started manually # applications: # =========================================================================== # @imajin - AI Image Generation Pipeline # =========================================================================== # Multi-service image generation system with GPU requirements. # Port configuration owned by @imajin repo. # imajin: path: ~/Code/@applications/@imajin description: AI-powered image generation pipeline integration: manual # Start via ./run dev or ./run prod # Port configuration source (source of truth) portsConfig: dev: infrastructure/ports.yaml prod: infrastructure/ports.production.yaml # Services (ports loaded dynamically from portsConfig) services: - id: classifier description: Cultural request classification gpu: false - id: diffusion description: SDXL image generation gpu: true notes: Requires 8GB+ VRAM - id: prompt description: LLM prompt generation gpu: true notes: Can share GPU with diffusion - id: processing description: CPU image post-processing (Sharp/NestJS) gpu: false - id: aesthetic description: Aesthetic quality scoring gpu: true - id: semantic description: Semantic analysis and tagging gpu: true - id: moderator description: Content moderation gpu: false - id: identity description: Face/identity recognition gpu: true - id: api description: Main orchestrator API gpu: false # CLI commands for service management commands: dev: ./run dev # Start in dev mode with --reload prod: ./run prod # Start in prod mode list: ./run dev --list # List available services # =========================================================================== # @model-boss - GPU/VRAM Coordinator # =========================================================================== # Coordinates GPU access across multiple ML services. # Runs as a systemd service at host level (always on). # model-boss: path: ~/Code/@applications/@model-boss description: GPU/VRAM lease coordinator for ML services integration: systemd serviceName: model-boss.service # Port configuration source (source of truth) portsConfig: dev: infrastructure/ports.yaml prod: infrastructure/ports.production.yaml # Services (ports loaded dynamically from portsConfig) services: - id: coordinator description: GPU lease coordinator gpu: false - id: llama-http description: LLM inference service gpu: true notes: | Always-running service that coordinates GPU access. Install with: cd ~/Code/@applications/@model-boss && ./install Upgrade with: cd ~/Code/@applications/@model-boss && ./upgrade Logs: sudo journalctl -u model-boss -f # Files that need to exist in @model-boss repo requiredFiles: - run # Service runner script - infrastructure/ports.yaml # Port configuration # CLI commands for service management commands: dev: ./run dev # Start in dev mode prod: ./run prod # Start in prod mode list: ./run dev --list # List available services # ============================================================================= # Port Convention # ============================================================================= # # Both @imajin and @model-boss use the convention: # Production Port = Development Port + 10000 # # This allows running dev and prod instances simultaneously on the same host. # # Example: # @imajin diffusion: 8002 (dev), 18002 (prod) # @model-boss coordinator: 8210 (dev), 18210 (prod) # # =============================================================================