(defcomp ()
  (~docs/page :title "Internal Services"
    (~docs/note
      (p "Honest note: the internal service protocol is JSON, not sx. Sx is the composition layer on top. The protocols below are the plumbing underneath."))
    (~docs/section :title "HMAC-signed HTTP" :id "hmac"
      (p (~tw :tokens "text-stone-600")
        "Services communicate via HMAC-signed HTTP requests with short timeouts:")
      (ul (~tw :tokens "space-y-2 text-stone-600 font-mono text-sm")
        (li "GET /internal/data/{query} — read data (3s timeout)")
        (li "POST /internal/actions/{action} — execute write (5s timeout)")
        (li "POST /internal/inbox — ActivityPub-shaped event delivery")))
    (~docs/section :title "fetch_data / call_action" :id "fetch"
      (p (~tw :tokens "text-stone-600")
        "Python helpers fetch_data() and call_action() handle HMAC signing, serialization, and error handling. They resolve service URLs from environment variables (INTERNAL_URL_BLOG, etc) and fall back to public URLs in development."))))
