Files
adaptive-multi-protocol-gat…/docs/interactive-apps.md
T

4.9 KiB

Interactive Applications

Status: draft | Updated 2026-07-05 | Applies to: dynamic app support

AMPG must support real applications without pretending every transport can offer the same experience. The design goal is graceful capability mapping: expose the safest useful version of each surface on each protocol, and keep private surfaces private.

Interaction tiers

static
Rendered files only. Works everywhere.
forms
Server-rendered GET/POST actions with full-page responses. Works on clearnet, Tor, I2P, and can be mapped to Gemini input prompts or Reticulum page scripts for simple actions.
sessions
Authenticated account flows. Supported on HTTP transports with strict cookies. Gemini can use client certificates or signed links later, but this is not a v1 requirement.
realtime
Rich browser UI, dashboards, live charts, websockets, or client-side state. HTTP transports only, and usually clearnet or private Tor/I2P.
internal
Worker APIs, webhooks, private admin APIs, payment callbacks, chain watchers, and service health endpoints. AMPG must not publish these automatically.

Application adapter contract

An application adapter describes what AMPG may expose:

  • upstream service and health check.
  • OpenAPI spec or route manifest when available.
  • route groups with interaction tier, auth requirement, and idempotency behavior.
  • form/action schemas for protocol translation.
  • public asset and cache policy.
  • private route denylist.

Adapters do not bypass the application. They translate constrained protocol input into the application's public action surface, then render safe responses.

Protocol mapping

Tier Clearnet Tor/I2P Gemini Reticulum
static yes yes yes yes
forms yes yes, no JS by default simple single-field prompts simple scripts/actions
sessions yes yes, strict cookies later later
realtime yes optional private surface no no
internal no public publish no public publish no no

Challenge profile: Medusa multi-tenant platform

Source: ../medusa-multi-tenant-platform.

Why it matters:

  • multi-tenant domain routing.
  • storefront, tenant admin, backend, worker, database, Redis, S3/MinIO.
  • cart, checkout, orders, bookings, blogs, email, payment providers, and webhooks.
  • tenant-specific themes and custom domains.

AMPG support target:

  • Clearnet: adopt existing Caddy/reverse-proxy deployment.
  • Tor/I2P: expose storefront routes with forms or sessions tier, no JavaScript by default.
  • Gemini/Reticulum: expose catalog, blog, policy, product detail, and inquiry/request flows.
  • Admin: internal unless explicitly bound to a private operator transport.
  • Webhooks, payment callbacks, worker queues, health internals: always internal.

Required adapter capabilities:

  • read tenant/domain registry or accept an exported tenant manifest.
  • generate per-tenant protocol targets and daemon plans.
  • cap checkout/payment routes by protocol.
  • use OpenAPI route metadata where available.
  • never expose tenant admin or backend admin by wildcard.

Challenge profile: evaluetron / ai-gen-bot

Source: ../ai-gen-bot.

Why it matters:

  • OpenAPI-first core.
  • customer storefront plus operator console.
  • auth, payments, credit ledger, job queue, workers, moderation, and generated artifacts.
  • public web channel, Telegram channel, internal worker APIs, and admin APIs.

AMPG support target:

  • Clearnet: public storefront and docs.
  • Tor/I2P: public storefront with server-rendered account/job flows when enabled.
  • Gemini/Reticulum: catalog browsing, deposit instructions, simple generation request, and job status lookup only after explicit adapter support.
  • Operator console: private clearnet, LAN, mesh, or private onion only.
  • Worker/internal routes: never published.

Required adapter capabilities:

  • consume api/openapi.yaml as the action contract.
  • map job creation to idempotent form submissions.
  • render job status as polling-friendly pages.
  • hide unavailable generators when no worker advertises the required capability.
  • preserve the ledger and payment invariants of the upstream app.

Design constraints learned from the challenge apps

  • Public route discovery must start deny-first.
  • OpenAPI is useful, but not sufficient; route tiers and privacy intent must be explicit.
  • Admin and worker surfaces are separate sites or route groups, not accidental subpaths.
  • Gemini and Reticulum need curated actions, not automatic exposure of every POST route.
  • Multi-tenant apps need generated protocol targets per tenant, with shared daemon adapters.

Reusable checklist

  • Classify every route group by interaction tier.
  • Deny private/admin/internal routes before enabling protocols.
  • Prefer OpenAPI or route manifests over HTML scraping for actions.
  • Provide safe alternates for constrained transports.
  • Verify no worker, webhook, payment callback, or admin route is publicly published.