---
# Module Dependencies Diagram - Corvus
# Generated: 2026-02-16
# Skill: c4-diagrams
---

flowchart TB
  subgraph LEGEND["Legend"]
    direction LR
    CLIENT["Client"]:::client
    CORE["Shared Core"]:::core
    EXTERNAL["External"]:::external
  end

  subgraph MODULES["Project Modules"]
    direction TB

    subgraph CLIENTS["clients/"]
      direction TB
      ANDROID["androidApp\n(Kotlin + Android SDK)"]:::client
      IOS["iosApp\n(Swift + KMP Framework)"]:::client
      WEB["web\n(Astro + Vue)"]:::client
      RUNTIME["agent-runtime\n(Kotlin + Spring Boot)"]:::client
      COMPOSE["composeApp\n(Compose Multiplatform)"]:::client
    end

    subgraph CORE_MODULE["modules/"]
      CORE_KMP["agent-core-kmp\n(Kotlin Multiplatform)"]:::core
    end
  end

  subgraph EXTERNAL["External Dependencies"]
    KMP["Kotlin Multiplatform"]:::external
    COMPOSE_MP["Compose MP"]:::external
    SPRING["Spring Boot"]:::external
    ANDROID_SDK["Android SDK"]:::external
    IOS_SDK["iOS SDK"]:::external
    ASTRO["Astro/Vue"]:::external
  end

%% Dependencies
  ANDROID -->|implementation| COMPOSE
  IOS -->|framework| COMPOSE
  COMPOSE -->|api| CORE_KMP
  RUNTIME -->|implementation| CORE_KMP
  CORE_KMP -->|kotlin| KMP
  COMPOSE -->|compose| COMPOSE_MP
  ANDROID -->|android| ANDROID_SDK
  IOS -->|ios| IOS_SDK
  RUNTIME -->|spring| SPRING
  WEB -->|astro| ASTRO
%% Styling
  classDef client fill: #438dd5, stroke: #2e6299, stroke-width: 2px, color: #fff
  classDef core fill: #2e6299, stroke: #1a3d5c, stroke-width: 3px, color: #fff
  classDef external fill: #999, stroke: #666, stroke-width: 1px, color: #fff
