<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 980 880" xmlns="http://www.w3.org/2000/svg" style="max-width: 100%; height: auto;">
  <defs>
    <!-- Arrow markers -->
    <marker id="arrow" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
      <path d="M0,0 L0,6 L9,3 z" fill="#2563EB">
    </marker>

    <!-- Drop shadow for depth -->
    <filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
      <feGaussianBlur in="SourceAlpha" stdDeviation="2">
      <feOffset dx="1" dy="1" result="offsetblur">
      <feComponentTransfer>
        <feFuncA type="linear" slope="0.2">
      </feComponentTransfer>
      <feMerge>
        <feMergeNode/>
        <feMergeNode in="SourceGraphic">
      </feMerge>
    </filter>
  </defs>



  <!-- Beautiful gradient definitions for depth -->
  

  <!-- White background with subtle border -->
  <rect x="0" y="0" width="980" height="880" fill="#F9FAFB" stroke="#9CA3AF" stroke-width="2" rx="8">

  <!-- Content container with proper margins -->
  <g transform="translate(40, 40)">
  

  <!-- Title -->
  <text x="450" y="30" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="24" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">Data Flow Through Modules</text>

  <!-- User Input -->
  <ellipse cx="450" cy="70" rx="80" ry="25" fill="url(#inputGradient)" stroke="#2563EB" stroke-width="2" opacity="0.9">
  <text x="450" y="75" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">User Input</text>

  <!-- Arrow down -->
  <line x1="450" y1="95" x2="450" y2="120" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">

  <!-- web_server/channels -->
  <rect x="300" y="120" width="300" height="70" fill="url(#processGradient)" stroke="#2563EB" stroke-width="2" rx="8" opacity="0.9" filter="url(#shadow)">
  <text x="450" y="145" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">web_server/ | channels/</text>
  <text x="450" y="165" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Axum HTTP Server</text>
  <text x="450" y="180" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Route to channel</text>

  <!-- Arrow down -->
  <line x1="450" y1="190" x2="450" y2="220" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">

  <!-- session/ -->
  <rect x="300" y="220" width="300" height="70" fill="url(#processGradient)" stroke="#2563EB" stroke-width="2" rx="8" opacity="0.9" filter="url(#shadow)">
  <text x="450" y="245" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">session/</text>
  <text x="450" y="265" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Load/Create Session</text>
  <text x="450" y="280" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Validate Token</text>

  <!-- Arrow down -->
  <line x1="450" y1="290" x2="450" y2="320" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">

  <!-- auth/ -->
  <rect x="300" y="320" width="300" height="70" fill="url(#processGradient)" stroke="#2563EB" stroke-width="2" rx="8" opacity="0.9" filter="url(#shadow)">
  <text x="450" y="345" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">auth/</text>
  <text x="450" y="365" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Check Permissions</text>
  <text x="450" y="380" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Apply RBAC</text>

  <!-- Arrow down -->
  <line x1="450" y1="390" x2="450" y2="420" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">

  <!-- bot/ -->
  <rect x="300" y="420" width="300" height="70" fill="url(#serviceGradient)" stroke="#2563EB" stroke-width="2" rx="8" opacity="0.9" filter="url(#shadow)">
  <text x="450" y="445" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">bot/</text>
  <text x="450" y="465" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Route to Bot Instance</text>
  <text x="450" y="480" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Load Configuration</text>

  <!-- Arrow down -->
  <line x1="450" y1="490" x2="450" y2="520" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">

  <!-- basic/ -->
  <rect x="300" y="520" width="300" height="70" fill="url(#serviceGradient)" stroke="#2563EB" stroke-width="2" rx="8" opacity="0.9" filter="url(#shadow)">
  <text x="450" y="545" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">basic/</text>
  <text x="450" y="565" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Execute BASIC Script</text>
  <text x="450" y="580" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Parse Keywords</text>

  <!-- Multiple arrows branching out -->
  <line x1="350" y1="590" x2="200" y2="640" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">
  <line x1="400" y1="590" x2="350" y2="640" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">
  <line x1="500" y1="590" x2="550" y2="640" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">
  <line x1="550" y1="590" x2="700" y2="640" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">

  <!-- Data Layer Services -->
  <!-- context/ -->
  <rect x="120" y="640" width="140" height="60" fill="url(#dataGradient)" stroke="#2563EB" stroke-width="2" rx="8" opacity="0.9" filter="url(#shadow)">
  <text x="190" y="665" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">context/</text>
  <text x="190" y="685" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Load KB</text>

  <!-- drive/ -->
  <rect x="280" y="640" width="140" height="60" fill="url(#dataGradient)" stroke="#2563EB" stroke-width="2" rx="8" opacity="0.9" filter="url(#shadow)">
  <text x="350" y="665" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">drive/</text>
  <text x="350" y="685" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Get Files</text>

  <!-- database/ -->
  <rect x="480" y="640" width="140" height="60" fill="url(#dataGradient)" stroke="#2563EB" stroke-width="2" rx="8" opacity="0.9" filter="url(#shadow)">
  <text x="550" y="665" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">database/</text>
  <text x="550" y="685" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Query DB</text>

  <!-- llm/ -->
  <rect x="640" y="640" width="140" height="60" fill="url(#dataGradient)" stroke="#2563EB" stroke-width="2" rx="8" opacity="0.9" filter="url(#shadow)">
  <text x="710" y="665" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">llm/</text>
  <text x="710" y="685" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">Call AI</text>

  <!-- Convergence arrows -->
  <line x1="190" y1="700" x2="400" y2="730" stroke="#666" stroke-width="2" opacity="0.5">
  <line x1="350" y1="700" x2="420" y2="730" stroke="#666" stroke-width="2" opacity="0.5">
  <line x1="550" y1="700" x2="480" y2="730" stroke="#666" stroke-width="2" opacity="0.5">
  <line x1="710" y1="700" x2="500" y2="730" stroke="#666" stroke-width="2" opacity="0.5">

  <!-- Arrow down -->
  <line x1="450" y1="730" x2="450" y2="750" stroke="#666" stroke-width="2" marker-end="url(#arrow)" opacity="0.6">

  <!-- Bot Response -->
  <ellipse cx="450" cy="780" rx="80" ry="25" fill="url(#outputGradient)" stroke="#2563EB" stroke-width="2" opacity="0.9">
  <text x="450" y="785" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#4B5563" filter="url(#textShadow)">Bot Response</text>

  <!-- Side annotations -->
  <g id="annotations" opacity="0.7">
    <!-- Processing stages -->
    <text x="50" y="75" text-anchor="start" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">1. Input Reception</text>
    <text x="50" y="155" text-anchor="start" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">2. HTTP Routing</text>
    <text x="50" y="255" text-anchor="start" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">3. Session Management</text>
    <text x="50" y="355" text-anchor="start" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">4. Authorization</text>
    <text x="50" y="455" text-anchor="start" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">5. Bot Routing</text>
    <text x="50" y="555" text-anchor="start" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">6. Script Execution</text>
    <text x="50" y="670" text-anchor="start" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)" font-weight="600">7. Data Processing</text>
    <text x="50" y="785" text-anchor="start" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#4B5563" filter="url(#textShadow)">8. Response Generation</text>
  </g>

  <!-- Performance note -->
  <text x="450" y="820" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-style="italic" fill="#4B5563" filter="url(#textShadow)">All operations are async with Tokio runtime for maximum throughput</text>


  </g>

</svg>