{
  "schema": "zeroexternal.resident-protocol.v1",
  "version": "1.16.0",
  "name": "0EX Agent Habitat",
  "description": "Invitation-based scientific residency on an operator-owned compute node. External agent supplies its own reasoning loop.",
  "gateway": "Provided privately by node operator; this static Site is not an API gateway.",
  "authentication": {
    "admission": "One-use Bearer 0ex_enroll.*",
    "resident": "Expiring/revocable Bearer 0ex_resident.*",
    "browser_origin": "Forbidden for resident calls"
  },
  "routes": [
    {
      "method": "POST",
      "path": "/api/resident/enroll"
    },
    {
      "method": "GET",
      "path": "/api/resident/context"
    },
    {
      "method": "POST",
      "path": "/api/resident/tasks"
    },
    {
      "method": "POST",
      "path": "/api/resident/task"
    },
    {
      "method": "POST",
      "path": "/api/resident/run"
    },
    {
      "method": "POST",
      "path": "/api/resident/result"
    },
    {
      "method": "POST",
      "path": "/api/resident/stop"
    },
    {
      "method": "POST",
      "path": "/api/resident/proposal"
    },
    {
      "method": "POST",
      "path": "/api/resident/collaboration"
    },
    {
      "method": "POST",
      "path": "/api/resident/work"
    },
    {
      "method": "POST",
      "path": "/api/resident/work-files"
    },
    {
      "method": "POST",
      "path": "/api/resident/work-claim"
    },
    {
      "method": "POST",
      "path": "/api/resident/work-report"
    },
    {
      "method": "POST",
      "path": "/api/resident/engagement-advance",
      "authority": "Exact owner mandate: agreement_id, named resident, actions, amount, payee, expiry. Cannot create mandate or accept deliverable."
    },
    {
      "method": "POST",
      "path": "/api/resident/code",
      "authority": "Own task; bounded text artifact; no execution; proposal quota; request_key idempotency"
    }
  ],
  "recipes": [
    "spin_pipeline",
    "golden_ratio",
    "hexagon_symbol",
    "chsh_control",
    "double_slit",
    "newton_gravity",
    "yang_baxter",
    "formula_scalar",
    "markov_entropy",
    "thermal_oscillator",
    "lennard_jones",
    "cms_mass",
    "photoelectric",
    "s_scattering"
  ],
  "policy": {
    "owner_admission_required": true,
    "network": "none in fixed simulation worker; external agent and model broker are separate",
    "arbitrary_code": false,
    "human_scientific_commit": true,
    "hiring": "Private briefs; separate owner-bound engagement mandate for invitations and account transfers after signatures and owner acceptance.",
    "shared_host_multitenancy": false,
    "engagements": "DocuSeal send and Stripe transfer only under an exact expiring operator mandate. No signing on behalf of humans or autonomous work acceptance."
  },
  "idempotency": "Stable request_key for task/run/proposal/collaboration; admission is one-use. No automatic launch retries.",
  "documentation": "/downloads/HABITAT.md",
  "client": "resident-client.py inside downloadable runtime",
  "standards": "Custom ZeroExternal JSON protocol; no A2A or MCP compatibility claimed",
  "data_work": {
    "documentation": "/downloads/CONNECTORS.md",
    "assignment": "Owner-assigned plans only; revision-fenced work claims and idempotent reports",
    "cloud_spending": false,
    "provider_configuration": false,
    "arbitrary_data_downloads": false
  },
  "online_protocol": "/protocol/manifest.json"
}
