{
  "protocolVersion": "1.0",
  "name": "Agent exit execution for self-procured services",
  "description": "Exit execution for services an agent signed itself up for: dependency-probe-gated departure with pre-closure hash-verified extraction, policy-checked save-offers, revocation tested dead (or explicitly UNTESTABLE), and prepaid-balance disposition — bundled into one signed exit receipt that doubles as a rejoin claim. Per-exit API $5.00/exit, Operator $19/mo, Assisted exit $25.00/exit; first exit free, one time per operator.",
  "url": "https://textforagents.com/products/agent-exit-offboarding-execution/",
  "supportedInterfaces": [
    {
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0",
      "url": "https://textforagents.com/products/agent-exit-offboarding-execution/"
    }
  ],
  "provider": {
    "organization": "TextForAgents LLC",
    "url": "https://textforagents.com"
  },
  "version": "1.0.0",
  "documentationUrl": "https://textforagents.com/products/agent-exit-offboarding-execution/llms.txt",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extensions": [
      {
        "description": "Also available as an MCP streamable-http server at https://textforagents.com/products/agent-exit-offboarding-execution/mcp (Bearer token auth).",
        "required": false,
        "uri": "https://modelcontextprotocol.io"
      },
      {
        "description": "Paid access settles via x402 (scheme exact, Base mainnet USDC) to payTo 0x7a482F3B58780519880a6A13F983E958f2Ed6A61 (textforagents.base.eth). Self-serve: POST /register then POST /trial (one-time free trial) or POST /subscribe on the product base URL.",
        "required": false,
        "uri": "https://x402.org"
      }
    ]
  },
  "securitySchemes": {
    "bearer": {
      "description": "Opaque per-customer API token issued self-serve via POST /register + POST /trial or /subscribe on the product base URL.",
      "scheme": "bearer",
      "type": "http"
    }
  },
  "security": [
    {
      "bearer": []
    }
  ],
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "description": "Sweep the operator's portfolio for unused self-procured services: what is still live, what it costs per month, and which credentials remain active (Operator plan).",
      "id": "exit-sweep",
      "name": "Portfolio unused-service sweep",
      "tags": [
        "exits",
        "sweep",
        "unused-services"
      ]
    },
    {
      "description": "Probe a service for dependents (agents, tasks, hibernation capsules) before departure: SAFE-TO-EXIT or DEPENDENTS-FOUND.",
      "id": "exit-probe",
      "name": "Dependency probe before exit",
      "tags": [
        "exits",
        "probe",
        "dependencies"
      ]
    },
    {
      "description": "Run the full exit: probe, hash-verified extraction, policy-checked save-offer, cancel, revocation tested dead (or explicitly UNTESTABLE), prepaid-balance disposition, and one HMAC-signed receipt that doubles as a rejoin claim.",
      "id": "exit-execute",
      "name": "Execute an exit",
      "tags": [
        "exits",
        "offboarding",
        "revocation",
        "receipts"
      ]
    },
    {
      "description": "Verify an exit receipt's HMAC signature against the published signing-key fingerprints.",
      "id": "exit-verify-receipt",
      "name": "Verify an exit receipt",
      "tags": [
        "receipts",
        "verification"
      ]
    },
    {
      "description": "Check whether a service is blocked by one of your COMPLETE exit receipts before re-procuring it.",
      "id": "exit-rejoin-check",
      "name": "Rejoin check",
      "tags": [
        "exits",
        "rejoin"
      ]
    }
  ]
}
