<svg width="100%" viewBox="0 0 780 320" role="img" xmlns="http://www.w3.org/2000/svg">
  <title>Three surfaces, one agent</title>
  <desc>Voice (Pi → LiveKit → voice-bridge), chat (browser → sudo-api SSE), and WhatsApp (Twilio → sudo-api) all reach the same per-user hermes container.</desc>
  <style>
    text{font-family:"Anthropic Sans",-apple-system,system-ui,"Segoe UI",sans-serif}
    .t{font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:central}
    .s{font-size:12px;text-anchor:middle;dominant-baseline:central}
    .lbl{font-size:12px;fill:#9c9a92;text-anchor:middle}
    rect{stroke-width:.5}
    .zone{fill:none;stroke:#5a5852;stroke-width:.5;stroke-dasharray:5 4;opacity:.6}
    .neutral{fill:#444441;stroke:#b4b2a9} .nt{fill:#d3d1c7} .ns{fill:#b4b2a9}
    .orange{fill:#712b13;stroke:#f0997b}  .ot{fill:#f5c4b3} .os{fill:#f0997b}
    .arrow{fill:none;stroke:#9c9a92;stroke-width:1.5}
  </style>
  <defs>
    <marker id="a" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
      <path d="M2 1L8 5L2 9" fill="none" stroke="context-stroke" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
    </marker>
  </defs>

  <rect class="zone" x="20" y="20" width="340" height="280" rx="12"/>
  <text x="40" y="44" style="font-size:13px;font-weight:500;fill:#c2c0b6">How a message arrives</text>

  <rect class="neutral" x="60" y="70" width="260" height="56" rx="8"/>
  <text class="t nt" x="190" y="92">🎤  Voice</text>
  <text class="s ns" x="190" y="110">Pi → LiveKit → voice-bridge</text>

  <rect class="neutral" x="60" y="148" width="260" height="56" rx="8"/>
  <text class="t nt" x="190" y="170">💬  Chat</text>
  <text class="s ns" x="190" y="188">browser → sudo-api (SSE)</text>

  <rect class="neutral" x="60" y="226" width="260" height="56" rx="8"/>
  <text class="t nt" x="190" y="248">📱  WhatsApp</text>
  <text class="s ns" x="190" y="266">Twilio → sudo-api</text>

  <rect class="orange" x="500" y="100" width="240" height="120" rx="8"/>
  <text class="t ot" x="620" y="138">🧠  hermes-user-&lt;id&gt;</text>
  <text class="s os" x="620" y="166">one agent · one memory</text>
  <text class="s os" x="620" y="186">shared across all three</text>

  <path class="arrow" d="M 320 98  L 460 130" marker-end="url(#a)"/>
  <path class="arrow" d="M 320 176 L 498 160" marker-end="url(#a)"/>
  <path class="arrow" d="M 320 254 L 460 190" marker-end="url(#a)"/>
</svg>
