{
  "openapi": "3.1.0",
  "info": {
    "title": "Blueprint Robot-Team Agent API",
    "version": "2026-07-29",
    "summary": "Headless discovery of scoped site jobs and bounded evaluation tools for robot teams.",
    "description": "Blueprint runs a free beta: a site shows one recurring job, invited robot teams evaluate it in a simplified simulation of the task, informed by the site's footage, and Blueprint recommends one team whose evaluation passed, which the site books in one step. This API exposes capture-backed job discovery, grounded questions, and Task Evaluation Run intake for robot teams; it does not grant an invitation or authorize a physical pilot. Simulation results are bounded estimates, not proof of physical performance or safety. Pipeline owns evidence-method routing and scientific verdicts. Historical order, entitlement, and hosted-session records retain their existing access controls; standalone purchasing is retired."
  },
  "servers": [
    {
      "url": "https://tryblueprint.io",
      "description": "Production public origin. Protected flows require a scoped robot-team/admin bearer token."
    },
    {
      "url": "http://localhost:5000",
      "description": "Local development server. Hosted-session routes retain the same bearer and entitlement boundaries."
    }
  ],
  "tags": [
    {
      "name": "Discovery",
      "description": "Public site and API discovery for agents."
    },
    {
      "name": "Ask",
      "description": "Grounded, citation-backed question answering for agents."
    },
    {
      "name": "Catalog",
      "description": "Public site-world catalog and detail endpoints."
    },
    {
      "name": "Team",
      "description": "Register an approved robot team and manage its agent key. Robot teams join by invitation after application review, so registration needs the invitation from the approval email (or an approved account); it grants no evaluation: evaluations are free during the beta and run only on Blueprint's invitation and approval."
    },
    {
      "name": "Legacy commerce",
      "description": "Read-only compatibility for historical orders and entitlements; the purchase endpoints are retired and return 410."
    },
    {
      "name": "Hosted sessions",
      "description": "Compatibility lifecycle for previously entitled hosted-session records."
    }
  ],
  "paths": {
    "/api/agent-access": {
      "get": {
        "tags": [
          "Discovery"
        ],
        "operationId": "discoverAgentAccess",
        "summary": "Discover the robot-team agent access manifest.",
        "description": "Credential-free discovery manifest for headless robot-team agents. It names blueprint.siteWorld.search as the first-class search tool, keeps requestCandidate intake-only, and documents the Task Evaluation Run plus protected legacy-record boundaries.",
        "security": [
          {}
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentAccessManifest"
                }
              }
            }
          }
        }
      }
    },
    "/api/agent-team/register": {
      "post": {
        "tags": [
          "Team"
        ],
        "operationId": "registerRobotTeam",
        "summary": "Register an approved robot team and receive an agent key.",
        "description": "Registration is by invitation, rate limited per address. Robot teams apply at /contact/robot-team; once Blueprint approves the application, register with the `invitation` from the approval email, or send the approved, verified Blueprint account's Firebase ID token as `Authorization: Bearer`. Without either the call is refused (401 registration_invitation_required; 403 registration_invitation_invalid or registration_not_approved), and one approval registers one team (409 registration_team_exists). The approval is bound to the team it registers. Accepts self-reported hardware maturity and deployment/support coverage as optional fields; the human form asks both because a past-task evaluation cannot establish those physical facts. Creates a team record with status self_registered and returns an agent key exactly once; only a SHA-256 is stored. Registration does not start an evaluation: each evaluation runs only after Blueprint approves the exact team, policy, and job; evaluations are free during the beta. A team evaluation calls only an HTTPS policy endpoint (runtime policy_endpoint) with a bearer token attached through /api/agent-team/checkpoints/{checkpointId}/credentials; containers and private checkpoints are not admitted. Manage keys from the team's verified Blueprint account; Blueprint issues and revokes account-bound keys on request (hello@tryblueprint.io). A lost key is re-issued to the team's contact email via /api/agent-team/keys/reissue.",
        "security": [
          {}
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "teamName"
                ],
                "properties": {
                  "invitation": {
                    "type": "string",
                    "maxLength": 4000,
                    "description": "The invitation from the team's approval email. Required unless the call carries an approved account's ID token."
                  },
                  "teamName": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 120
                  },
                  "contactEmail": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 320
                  },
                  "website": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 500
                  },
                  "taskFamily": {
                    "type": "string",
                    "maxLength": 60
                  },
                  "capabilityDescription": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "embodiment": {
                    "type": "string",
                    "maxLength": 80,
                    "description": "What the robot is, e.g. 'Mobile manipulator'. Ranked and shown, never a gate."
                  },
                  "hardwareMaturity": {
                    "type": "string",
                    "enum": [
                      "deployed",
                      "pilots",
                      "prototype",
                      "development"
                    ],
                    "description": "Whether the hardware exists today. A fact about the business; no run measures it."
                  },
                  "deploymentGeography": {
                    "type": "string",
                    "enum": [
                      "us_national",
                      "specific_regions",
                      "not_deploying",
                      "yes",
                      "right_opportunity",
                      "size_dependent",
                      "no"
                    ],
                    "description": "Deployment and support coverage. Legacy yes/right_opportunity/size_dependent/no answers apply only to Austin. Stored as self-reported context."
                  },
                  "deploymentRegions": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500,
                    "description": "Required when deploymentGeography is specific_regions. Full country/state names or city, state; separate regions with semicolons. Example: Texas; Ohio; Austin, TX; Canada. Unclear coverage remains provisional."
                  },
                  "checkpoint": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string"
                      },
                      "runtime": {
                        "type": "string",
                        "enum": [
                          "policy_endpoint"
                        ],
                        "description": "Team evaluations admit only policy_endpoint, with a bearer token attached afterwards."
                      },
                      "reference": {
                        "type": "string",
                        "description": "Your policy's HTTPS URL."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Team registered. `agentKey` is returned once. Registration authorizes no evaluation; evaluations run only on Blueprint's invitation and approval.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid registration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "No invitation or approved account (registration_invitation_required)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Invitation not current, or account not approved (registration_invitation_invalid, registration_not_approved)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "This approval already registered a team (registration_team_exists)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Registration rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/agent-team/keys/reissue": {
      "post": {
        "tags": [
          "Team"
        ],
        "operationId": "reissueRobotTeamKey",
        "summary": "Re-issue a lost agent key to the team's registered contact email.",
        "description": "No credential: anyone can call it, so the response never contains a key and says the same thing whether or not the address is registered. New keys are emailed to the address on the team record. Rate limited per address. A team connected to a Blueprint account is not re-issued a key by email; the message asks the team to email hello@tryblueprint.io.",
        "security": [
          {}
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "contactEmail"
                ],
                "properties": {
                  "contactEmail": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 320
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted. Keys, if any, are delivered by email to the registered address.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Re-issue rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/site-content": {
      "get": {
        "tags": [
          "Discovery"
        ],
        "operationId": "discoverBlueprint",
        "summary": "Discover public Blueprint pages, llms files, and machine-readable resources.",
        "security": [
          {}
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteContentResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/site-worlds": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "listSiteWorlds",
        "summary": "List public site-world catalog entries.",
        "security": [
          {}
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 24
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteWorldListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/site-worlds/search": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "searchSiteWorlds",
        "summary": "Search public site-world catalog entries by natural language query, alias, and structured filters.",
        "description": "Public read-only catalog discovery for robot-team agents. This is the OpenAPI surface behind the MCP tool blueprint.siteWorld.search. Queries such as grocery store, supermarket, retail aisle, or warehouse tote return truthful close results with scores, reasons, matched aliases, matched fields, parsed filters, no-exact scanned package semantics, request-candidate URLs/drafts, warnings, and embedding-use metadata. Brand aliases do not imply exact partner or package availability.",
        "security": [
          {}
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "examples": {
              "grocery": {
                "value": "grocery store"
              },
              "store": {
                "value": "store"
              },
              "warehouseTote": {
                "value": "warehouse tote"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 10
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "industry",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "siteType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskLane",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectTags",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated required object tags, for example tote,pallet."
          },
          {
            "name": "robot",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "availability",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "readiness",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "relevance",
                "name",
                "city",
                "category",
                "readiness",
                "availability"
              ],
              "default": "relevance"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteWorldSearchResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "This endpoint is public catalog discovery only. It does not grant hosted-session access, buyer entitlement, private artifact access, or exact brand/site availability."
      }
    },
    "/api/site-worlds/{siteWorldId}": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "getSiteWorld",
        "summary": "Get one public site-world detail record.",
        "security": [
          {}
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SiteWorldId"
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteWorld"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/site-worlds/sessions/launch-readiness": {
      "get": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "getLaunchReadiness",
        "summary": "Inspect launch readiness for a site world before creating a hosted session.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "name": "siteWorldId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchReadiness"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/agent-access/commerce/quote": {
      "get": {
        "tags": [
          "Legacy commerce"
        ],
        "operationId": "quoteAgentCommerce",
        "summary": "Retired standalone quote endpoint.",
        "deprecated": true,
        "security": [
          {}
        ],
        "parameters": [
          {
            "name": "siteWorldId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "product",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "site_world_package",
                "hosted_session_rental"
              ],
              "default": "hosted_session_rental"
            }
          },
          {
            "name": "sessionHours",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          }
        ],
        "responses": {
          "410": {
            "description": "Standalone commerce retired; request a free Task Evaluation Run",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "This endpoint creates no quote, Stripe session, order, charge, or entitlement. Historical transactions remain readable."
      }
    },
    "/api/agent-access/commerce/dry-run-checkout": {
      "post": {
        "tags": [
          "Legacy commerce"
        ],
        "operationId": "createAgentDryRunCheckout",
        "summary": "Retired standalone dry-run checkout endpoint.",
        "deprecated": true,
        "security": [
          {}
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentDryRunCheckoutRequest"
              }
            }
          }
        },
        "responses": {
          "410": {
            "description": "Standalone commerce retired; request a free Task Evaluation Run",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "This endpoint creates no order or entitlement. Historical dry-run records remain readable through compatibility routes."
      }
    },
    "/api/agent-access/commerce/orders/{orderId}": {
      "get": {
        "tags": [
          "Legacy commerce"
        ],
        "operationId": "getAgentDryRunOrder",
        "summary": "Read a dry-run order and receipt.",
        "security": [
          {}
        ],
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentDryRunOrderResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-blueprint-dry-run-only": true
      }
    },
    "/api/agent-access/commerce/entitlements/{entitlementId}": {
      "get": {
        "tags": [
          "Legacy commerce"
        ],
        "operationId": "getAgentDryRunEntitlement",
        "summary": "Read a historical dry-run entitlement.",
        "security": [
          {}
        ],
        "parameters": [
          {
            "name": "entitlementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentEntitlementResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-blueprint-dry-run-only": true
      }
    },
    "/api/agent-access/commerce/entitlement-readiness": {
      "get": {
        "tags": [
          "Legacy commerce"
        ],
        "operationId": "getAgentEntitlementReadiness",
        "summary": "Check whether a provisioned entitlement would unlock protected hosted-session launch.",
        "security": [
          {}
        ],
        "parameters": [
          {
            "name": "siteWorldId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entitlementId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "buyerUserId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "agent-dry-run-buyer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentEntitlementReadiness"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-blueprint-dry-run-only": true,
        "x-blueprint-truth-boundary": "Entitlement readiness proves commerce linkage only. Runtime launch, rights, provider execution, and package fulfillment still require their owning systems."
      }
    },
    "/api/agent-access/ask": {
      "get": {
        "tags": [
          "Ask"
        ],
        "operationId": "askBlueprint",
        "summary": "Ask a grounded question about Blueprint and receive citation-backed answers with machine next-actions.",
        "description": "Public question answering for headless agents behind the MCP tool blueprint.ask. Answers are curated citation-backed snippets over current Task Evaluation Run doctrine, search, pricing, proof boundaries, intake, and legacy-record compatibility. Ranking combines alias, lexical, and embedding signals with a deterministic fallback.",
        "security": [
          {}
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "examples": {
              "start": {
                "value": "How does a robot team start an evaluation?"
              },
              "search": {
                "value": "How do I filter sites by type and location?"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 3
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentAskResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "Answers are curated grounded snippets with citations, not generated claims, and grant no access or commerce state."
      },
      "post": {
        "tags": [
          "Ask"
        ],
        "operationId": "askBlueprintPost",
        "summary": "POST variant of the grounded ask endpoint for JSON-body agent clients.",
        "security": [
          {}
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentAskRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentAskResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/agent-access/commerce/live-checkout": {
      "post": {
        "tags": [
          "Legacy commerce"
        ],
        "operationId": "createAgentLiveCheckout",
        "summary": "Retired standalone live checkout endpoint.",
        "deprecated": true,
        "description": "Evaluations are free during the beta and start from a Task Evaluation Run request. This compatibility endpoint always returns 410 and creates no Stripe session, order, charge, or entitlement.",
        "security": [
          {}
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentLiveCheckoutRequest"
              }
            }
          }
        },
        "responses": {
          "410": {
            "description": "Standalone commerce retired; request a free Task Evaluation Run",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-blueprint-live-stripe": false,
        "x-blueprint-truth-boundary": "This endpoint creates no Stripe session, order, charge, or entitlement. Historical transactions remain readable."
      }
    },
    "/api/agent-access/commerce/live-orders/{orderId}": {
      "get": {
        "tags": [
          "Legacy commerce"
        ],
        "operationId": "getAgentLiveOrderStatus",
        "summary": "Read historical agent order and entitlement-provisioning status.",
        "description": "Non-PII read-only compatibility projection of a historical buyer-order ledger record behind blueprint.commerce.liveOrder.get.",
        "security": [
          {}
        ],
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentLiveOrderStatus"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-blueprint-live-stripe": false
      }
    },
    "/api/site-worlds/sessions": {
      "post": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "createHostedSession",
        "summary": "Create a hosted session for an entitled robot-team account.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateHostedSessionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Reusable protected session returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateHostedSessionResponse"
                }
              }
            }
          },
          "201": {
            "description": "Session created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateHostedSessionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "Creation requires Firebase robot_team/admin authentication plus a provisioned entitlement and current owner-system launch readiness."
      }
    },
    "/api/site-worlds/sessions/{sessionId}": {
      "get": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "getHostedSession",
        "summary": "Read a hosted session record.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SessionId"
          }
        ],
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedSession"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/site-worlds/sessions/{sessionId}/reset": {
      "post": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "resetHostedSession",
        "summary": "Reset scenario, start state, task, and seed for a hosted rollout.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SessionId"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetHostedSessionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedSessionOperationResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted for async runtime mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingOperationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "Hosted-session mutation requires bearer auth and preserves entitlement, ownership, runtime, and launch-readiness checks."
      }
    },
    "/api/site-worlds/sessions/{sessionId}/step": {
      "post": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "stepHostedSession",
        "summary": "Advance one rollout step with an action or autopolicy request.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SessionId"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StepHostedSessionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedSessionOperationResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted for async runtime mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingOperationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "Hosted-session mutation requires bearer auth and preserves entitlement, ownership, runtime, and launch-readiness checks."
      }
    },
    "/api/site-worlds/sessions/{sessionId}/run-batch": {
      "post": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "runBatchHostedSession",
        "summary": "Run a headless batch rollout and return summary/artifact references.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SessionId"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunBatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedSessionOperationResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted for async runtime mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingOperationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "Hosted-session mutation requires bearer auth and preserves entitlement, ownership, runtime, and launch-readiness checks."
      }
    },
    "/api/site-worlds/sessions/{sessionId}/control": {
      "post": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "controlHostedSession",
        "summary": "Send runtime control intent for camera, policy, or playback state.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SessionId"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ControlRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedSessionOperationResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted for async runtime mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingOperationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "Hosted-session mutation requires bearer auth and preserves entitlement, ownership, runtime, and launch-readiness checks."
      }
    },
    "/api/site-worlds/sessions/{sessionId}/render": {
      "get": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "renderHostedSessionFrame",
        "summary": "Render a robot-observation frame for the selected camera.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SessionId"
          },
          {
            "name": "cameraId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "head_rgb"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Rendered frame or fallback artifact frame.",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/site-worlds/sessions/{sessionId}/explorer-render": {
      "post": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "renderHostedSessionExplorer",
        "summary": "Render an explorer frame from a requested camera pose.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SessionId"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExplorerRenderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedSessionOperationResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted for async runtime mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingOperationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "Hosted-session mutation requires bearer auth and preserves entitlement, ownership, runtime, and launch-readiness checks."
      }
    },
    "/api/site-worlds/sessions/{sessionId}/explorer-frame": {
      "get": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "getHostedSessionExplorerFrame",
        "summary": "Fetch the latest explorer-rendered PNG frame.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SessionId"
          },
          {
            "name": "cameraId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "head_rgb"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Explorer-rendered PNG frame.",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/site-worlds/sessions/{sessionId}/export": {
      "post": {
        "tags": [
          "Hosted sessions"
        ],
        "operationId": "exportHostedSession",
        "summary": "Export session dataset artifacts and manifest references.",
        "security": [
          {
            "BlueprintBearer": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/SessionId"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedSessionOperationResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted for async runtime mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingOperationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated account is not allowed to launch protected hosted sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Requested site world or session was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Launch or runtime operation is blocked by current readiness, access, or session state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LaunchBlockedResponse"
                }
              }
            }
          }
        },
        "x-blueprint-truth-boundary": "Hosted-session mutation requires bearer auth and preserves entitlement, ownership, runtime, and launch-readiness checks."
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BlueprintBearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Firebase ID token or future scoped robot-team machine token",
        "description": "Protected flows currently use Firebase Admin token verification. The bearer must resolve to an admin user or a user profile with buyerType robot_team."
      }
    },
    "parameters": {
      "SiteWorldId": {
        "name": "siteWorldId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "SessionId": {
        "name": "sessionId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "TruthLabel": {
        "type": "string",
        "enum": [
          "capture_grounded",
          "provider_derived",
          "generated",
          "request_gated",
          "protected_robot_team",
          "dry_run_order",
          "live_checkout"
        ]
      },
      "AgentCommerceProduct": {
        "type": "string",
        "enum": [
          "site_world_package",
          "hosted_session_rental"
        ]
      },
      "StatusLabel": {
        "type": "string",
        "enum": [
          "ready",
          "launchable",
          "blocked",
          "running",
          "completed",
          "failed",
          "request_gated",
          "not_configured"
        ]
      },
      "SiteContentResponse": {
        "type": "object",
        "required": [
          "summary",
          "definitions",
          "pages",
          "machineReadableFiles"
        ],
        "properties": {
          "summary": {
            "type": "string"
          },
          "definitions": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "pages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicPage"
            }
          },
          "queryThemes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "privateOrNoindex": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "machineReadableFiles": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PublicPage": {
        "type": "object",
        "required": [
          "path",
          "title",
          "description"
        ],
        "properties": {
          "path": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "AgentAccessManifest": {
        "type": "object",
        "required": [
          "name",
          "preferredTool",
          "compatibilityTool",
          "mcpToolNames",
          "credentiallessWorkflow",
          "siteWorldSearch",
          "ask",
          "journeyPlanner",
          "requestCandidate",
          "requestLocationDraft",
          "legacyCommerce",
          "protectedFlow",
          "truthLabels"
        ],
        "additionalProperties": true,
        "properties": {
          "name": {
            "type": "string"
          },
          "docs": {
            "type": "string"
          },
          "openapi": {
            "type": "string"
          },
          "staticOpenapi": {
            "type": "string"
          },
          "llms": {
            "type": "string"
          },
          "llmsFull": {
            "type": "string"
          },
          "preferredTool": {
            "type": "string",
            "enum": [
              "blueprint.siteWorld.search"
            ]
          },
          "compatibilityTool": {
            "type": "string",
            "enum": [
              "blueprint.catalog.search"
            ]
          },
          "mcpToolNames": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "blueprint.siteWorld.search",
                "blueprint.catalog.search",
                "blueprint.ask",
                "blueprint.request.locationDraft",
                "blueprint.siteWorld.get",
                "blueprint.siteWorld.launchReadiness",
                "blueprint.commerce.order.get",
                "blueprint.commerce.liveOrder.get",
                "blueprint.commerce.entitlement.get",
                "blueprint.commerce.entitlementReadiness",
                "blueprint.session.create",
                "blueprint.session.reset",
                "blueprint.session.step",
                "blueprint.session.runBatch",
                "blueprint.session.control",
                "blueprint.session.renderExplorer",
                "blueprint.session.export",
                "blueprint.team.me",
                "blueprint.team.checkpoint.register",
                "blueprint.team.checkpoint.list",
                "blueprint.team.plan",
                "blueprint.team.runs.start",
                "blueprint.team.runs.release",
                "blueprint.team.policy.get",
                "blueprint.team.policy.set",
                "blueprint.team.runs.list",
                "blueprint.team.register"
              ]
            }
          },
          "credentiallessWorkflow": {
            "type": "object",
            "required": [
              "requiredCredentials",
              "summary",
              "cliCommands"
            ],
            "additionalProperties": true,
            "properties": {
              "requiredCredentials": {
                "type": "boolean"
              },
              "summary": {
                "type": "string"
              },
              "cliCommands": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "siteWorldSearch": {
            "type": "object",
            "additionalProperties": true
          },
          "ask": {
            "type": "object",
            "additionalProperties": true
          },
          "journeyPlanner": {
            "type": "object",
            "additionalProperties": true
          },
          "requestCandidate": {
            "type": "object",
            "additionalProperties": true
          },
          "requestLocationDraft": {
            "type": "object",
            "additionalProperties": true
          },
          "legacyCommerce": {
            "type": "object",
            "additionalProperties": true
          },
          "protectedFlow": {
            "type": "object",
            "additionalProperties": true
          },
          "tools": {
            "type": "object",
            "additionalProperties": true
          },
          "truthLabels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TruthLabel"
            }
          },
          "truth": {
            "type": "string"
          }
        }
      },
      "SiteWorldListResponse": {
        "type": "object",
        "required": [
          "items",
          "count"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteWorld"
            }
          },
          "count": {
            "type": "integer"
          }
        }
      },
      "SiteWorldSearchResponse": {
        "type": "object",
        "required": [
          "query",
          "results",
          "parsed",
          "appliedFilters",
          "matchSemantics",
          "requestCandidate",
          "warnings",
          "meta"
        ],
        "properties": {
          "query": {
            "type": "string"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteWorldSearchResult"
            }
          },
          "parsed": {
            "$ref": "#/components/schemas/SiteWorldSearchParsed"
          },
          "appliedFilters": {
            "$ref": "#/components/schemas/SiteWorldSearchFilters"
          },
          "matchSemantics": {
            "$ref": "#/components/schemas/SiteWorldSearchMatchSemantics"
          },
          "requestCandidate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SiteWorldSearchRequestCandidate"
              },
              {
                "type": "null"
              }
            ]
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/SiteWorldSearchMeta"
          }
        }
      },
      "SiteWorldSearchMatchSemantics": {
        "type": "object",
        "required": [
          "exactMatch",
          "noExactScannedPackage",
          "message",
          "truthBoundary"
        ],
        "properties": {
          "exactMatch": {
            "type": "boolean"
          },
          "noExactScannedPackage": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "truthBoundary": {
            "type": "string"
          }
        }
      },
      "SiteWorldSearchRequestCandidate": {
        "type": "object",
        "required": [
          "buyerType",
          "source",
          "requestPath",
          "requestUrl",
          "query",
          "siteName",
          "siteLocation",
          "taskStatement",
          "requestedOutputs",
          "proofPathPreference",
          "inboundRequestDraft"
        ],
        "properties": {
          "buyerType": {
            "type": "string",
            "enum": [
              "robot_team"
            ]
          },
          "source": {
            "type": "string",
            "enum": [
              "site-worlds"
            ]
          },
          "requestPath": {
            "type": "string",
            "enum": [
              "new-capture"
            ]
          },
          "requestUrl": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "siteName": {
            "type": "string"
          },
          "siteLocation": {
            "type": "string"
          },
          "targetSiteType": {
            "type": "string"
          },
          "workflow": {
            "type": "string"
          },
          "taskStatement": {
            "type": "string"
          },
          "requestedOutputs": {
            "type": "string"
          },
          "proofPathPreference": {
            "type": "string",
            "enum": [
              "exact_site_required"
            ]
          },
          "inboundRequestDraft": {
            "$ref": "#/components/schemas/SiteWorldInboundRequestDraft"
          }
        },
        "description": "Agent-safe request candidate for no-exact scanned package states. It records intake interest only and does not grant entitlement, payment, rights clearance, provider execution, hosted-session availability, fulfillment, or private artifact access."
      },
      "SiteWorldInboundRequestDraft": {
        "type": "object",
        "required": [
          "buyerType",
          "commercialRequestPath",
          "requestedLanes",
          "siteName",
          "siteLocation",
          "taskStatement",
          "proofPathPreference",
          "context"
        ],
        "additionalProperties": false,
        "properties": {
          "buyerType": {
            "type": "string",
            "enum": [
              "robot_team"
            ]
          },
          "commercialRequestPath": {
            "type": "string",
            "enum": [
              "capture_access"
            ]
          },
          "requestedLanes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "deeper_evaluation"
              ]
            }
          },
          "siteName": {
            "type": "string"
          },
          "siteLocation": {
            "type": "string"
          },
          "targetSiteType": {
            "type": "string"
          },
          "taskStatement": {
            "type": "string"
          },
          "proofPathPreference": {
            "type": "string",
            "enum": [
              "exact_site_required"
            ]
          },
          "workflowContext": {
            "type": "string"
          },
          "details": {
            "type": "string"
          },
          "context": {
            "type": "object",
            "required": [
              "sourcePageUrl",
              "buyerChannelSourceRaw",
              "utm"
            ],
            "properties": {
              "sourcePageUrl": {
                "type": "string"
              },
              "buyerChannelSourceRaw": {
                "type": "string",
                "enum": [
                  "site-worlds"
                ]
              },
              "utm": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      },
      "SiteWorldSearchResult": {
        "type": "object",
        "required": [
          "siteWorld",
          "score",
          "reasons",
          "matchedAliases",
          "matchedFields"
        ],
        "properties": {
          "siteWorld": {
            "$ref": "#/components/schemas/SiteWorld"
          },
          "score": {
            "type": "number"
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "matchedAliases": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "matchedFields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SiteWorldSearchParsed": {
        "type": "object",
        "required": [
          "q",
          "tokens",
          "aliases",
          "filters"
        ],
        "properties": {
          "q": {
            "type": "string"
          },
          "tokens": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "aliases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteWorldSearchAlias"
            }
          },
          "filters": {
            "$ref": "#/components/schemas/SiteWorldSearchFilters"
          }
        }
      },
      "SiteWorldSearchAlias": {
        "type": "object",
        "required": [
          "alias",
          "mapsTo",
          "categories",
          "industries",
          "siteTypes",
          "objectTags",
          "terms"
        ],
        "properties": {
          "alias": {
            "type": "string"
          },
          "mapsTo": {
            "type": "string"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "industries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "siteTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "objectTags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "terms": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "truthNote": {
            "type": "string"
          }
        }
      },
      "SiteWorldSearchFilters": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "industry": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "type": [
              "string",
              "null"
            ]
          },
          "siteType": {
            "type": [
              "string",
              "null"
            ]
          },
          "taskLane": {
            "type": [
              "string",
              "null"
            ]
          },
          "objectTags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "robot": {
            "type": [
              "string",
              "null"
            ]
          },
          "availability": {
            "type": [
              "string",
              "null"
            ]
          },
          "readiness": {
            "type": [
              "string",
              "null"
            ]
          },
          "sort": {
            "type": "string",
            "enum": [
              "relevance",
              "name",
              "city",
              "category",
              "readiness",
              "availability"
            ]
          }
        }
      },
      "SiteWorldSearchMeta": {
        "type": "object",
        "required": [
          "backend",
          "embeddingModel",
          "usedEmbeddings",
          "totalCandidates",
          "returned"
        ],
        "properties": {
          "backend": {
            "type": "string",
            "enum": [
              "firestore-live"
            ]
          },
          "embeddingModel": {
            "type": "string"
          },
          "usedEmbeddings": {
            "type": "boolean"
          },
          "totalCandidates": {
            "type": "integer"
          },
          "returned": {
            "type": "integer"
          }
        }
      },
      "SiteWorld": {
        "type": "object",
        "required": [
          "id",
          "siteName"
        ],
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "string"
          },
          "siteName": {
            "type": "string"
          },
          "siteAddress": {
            "type": "string"
          },
          "commercialStatus": {
            "type": "string"
          },
          "truthLabels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TruthLabel"
            }
          },
          "robotProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RobotProfile"
            }
          },
          "taskCatalog": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskCatalogEntry"
            }
          },
          "scenarioCatalog": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScenarioCatalogEntry"
            }
          },
          "startStateCatalog": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StartStateCatalogEntry"
            }
          }
        }
      },
      "RobotProfile": {
        "type": "object",
        "required": [
          "displayName",
          "embodimentType",
          "observationCameras",
          "actionSpace",
          "actionSpaceSummary"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "embodimentType": {
            "type": "string",
            "enum": [
              "humanoid",
              "mobile_manipulator",
              "fixed_arm",
              "mobile_base",
              "cart",
              "other"
            ]
          },
          "observationCameras": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RobotObservationCamera"
            }
          },
          "actionSpace": {
            "$ref": "#/components/schemas/RobotActionSpace"
          },
          "actionSpaceSummary": {
            "type": "string"
          },
          "gripperSemantics": {
            "type": [
              "string",
              "null"
            ]
          },
          "baseSemantics": {
            "type": [
              "string",
              "null"
            ]
          },
          "urdfRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "usdRef": {
            "type": [
              "string",
              "null"
            ]
          },
          "allowedPolicyAdapters": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "defaultPolicyAdapter": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "RobotObservationCamera": {
        "type": "object",
        "required": [
          "id",
          "role",
          "required",
          "defaultEnabled"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "defaultEnabled": {
            "type": "boolean"
          },
          "available": {
            "type": "boolean"
          },
          "framePath": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "RobotActionSpace": {
        "type": "object",
        "required": [
          "name",
          "dim",
          "labels"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "dim": {
            "type": "integer"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TaskCatalogEntry": {
        "type": "object",
        "required": [
          "id",
          "taskText"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "taskId": {
            "type": [
              "string",
              "null"
            ]
          },
          "taskText": {
            "type": "string"
          },
          "taskCategory": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "ScenarioCatalogEntry": {
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "StartStateCatalogEntry": {
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "taskId": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "RobotTeamTestSubmissionModalityId": {
        "type": "string",
        "enum": [
          "policy_api_endpoint",
          "docker_container",
          "recorded_action_trace",
          "high_level_skill_trace",
          "teleop_demo",
          "sim_controller_plugin"
        ]
      },
      "RobotTeamTestSubmissionModality": {
        "type": "object",
        "required": [
          "selected",
          "fields"
        ],
        "additionalProperties": true,
        "properties": {
          "selected": {
            "type": "boolean"
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "CamelCase reference fields from the WebApp/Pipeline robot-team test submission schema."
          },
          "artifactReferenceUris": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "missingFields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "missingEvidenceStatus": {
            "type": [
              "string",
              "null"
            ]
          },
          "reviewStatus": {
            "type": "string",
            "enum": [
              "not_selected",
              "missing_required_refs",
              "ready_for_review"
            ]
          }
        }
      },
      "RobotTeamTestSubmission": {
        "type": "object",
        "required": [
          "schemaVersion",
          "selectedModalities",
          "modalities"
        ],
        "additionalProperties": true,
        "properties": {
          "schemaVersion": {
            "type": "string",
            "enum": [
              "blueprint.robot_team_test_submission.v1"
            ]
          },
          "submissionId": {
            "type": [
              "string",
              "null"
            ]
          },
          "siteWorldId": {
            "type": [
              "string",
              "null"
            ]
          },
          "taskId": {
            "type": [
              "string",
              "null"
            ]
          },
          "scenarioId": {
            "type": [
              "string",
              "null"
            ]
          },
          "robotProfileId": {
            "type": [
              "string",
              "null"
            ]
          },
          "selectedModalities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RobotTeamTestSubmissionModalityId"
            }
          },
          "modalities": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/RobotTeamTestSubmissionModality"
            }
          },
          "missingEvidenceStatuses": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "requestedOutputs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pipelineDatasetSchemaRefs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "examples": [
              [
                "robot_team_test_submission_modalities.v0.1"
              ]
            ]
          },
          "proofBoundary": {
            "type": "object",
            "additionalProperties": true,
            "description": "Submitted references are artifact pointers only and do not prove simulator completion, rights clearance, package access, or policy pass/fail outcome."
          }
        }
      },
      "HostedSessionPolicy": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "runMode": {
            "type": "string"
          },
          "robotTeamTestSubmission": {
            "$ref": "#/components/schemas/RobotTeamTestSubmission"
          },
          "proofBoundary": {
            "type": "string"
          }
        }
      },
      "CreateHostedSessionRequest": {
        "type": "object",
        "required": [
          "siteWorldId",
          "robotProfileId",
          "taskId",
          "scenarioId",
          "startStateId"
        ],
        "properties": {
          "siteWorldId": {
            "type": "string",
            "examples": [
              "sw-<pipeline-site-world-id>"
            ]
          },
          "sessionMode": {
            "type": "string",
            "enum": [
              "runtime_only",
              "presentation_demo"
            ],
            "default": "runtime_only"
          },
          "runtimeUi": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "neoverse_gradio",
              null
            ]
          },
          "autoStartDemo": {
            "type": "boolean"
          },
          "robotProfileId": {
            "type": "string"
          },
          "robotProfileOverride": {
            "type": "object",
            "additionalProperties": true
          },
          "policy": {
            "$ref": "#/components/schemas/HostedSessionPolicy"
          },
          "taskId": {
            "type": "string"
          },
          "scenarioId": {
            "type": "string"
          },
          "startStateId": {
            "type": "string"
          },
          "requestedBackend": {
            "type": [
              "string",
              "null"
            ]
          },
          "runtimeSessionConfig": {
            "$ref": "#/components/schemas/HostedRuntimeSessionConfig"
          },
          "requestedOutputs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "exportModes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": "string"
          },
          "entitlementId": {
            "type": "string"
          },
          "orderId": {
            "type": "string"
          },
          "commerceMode": {
            "type": "string",
            "enum": [
              "dry_run"
            ]
          }
        }
      },
      "AgentCommerceQuote": {
        "type": "object",
        "required": [
          "quoteId",
          "mode",
          "product",
          "siteWorldId",
          "sku",
          "quantity",
          "unitAmountCents",
          "totalAmountCents",
          "currency"
        ],
        "properties": {
          "quoteId": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "dry_run"
            ]
          },
          "product": {
            "$ref": "#/components/schemas/AgentCommerceProduct"
          },
          "siteWorldId": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "quantityLabel": {
            "type": "string"
          },
          "unitAmountCents": {
            "type": "integer"
          },
          "totalAmountCents": {
            "type": "integer"
          },
          "currency": {
            "type": "string",
            "enum": [
              "usd"
            ]
          },
          "priceSource": {
            "type": "string",
            "enum": [
              "catalog",
              "default"
            ],
            "description": "Persisted historical price-source field retained for transaction readability. New quote and checkout writes are retired."
          },
          "entitlementType": {
            "type": "string",
            "enum": [
              "package_access",
              "hosted_session"
            ]
          },
          "truthLabels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TruthLabel"
            }
          }
        }
      },
      "AgentCommerceQuoteResponse": {
        "type": "object",
        "required": [
          "quote",
          "truth"
        ],
        "properties": {
          "quote": {
            "$ref": "#/components/schemas/AgentCommerceQuote"
          },
          "siteWorld": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true
          },
          "truth": {
            "type": "string"
          }
        }
      },
      "AgentAskRequest": {
        "type": "object",
        "required": [
          "q"
        ],
        "properties": {
          "q": {
            "type": "string",
            "description": "Natural-language question about Blueprint."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "default": 3
          }
        }
      },
      "AgentAskAction": {
        "type": "object",
        "required": [
          "description",
          "method",
          "endpoint"
        ],
        "properties": {
          "description": {
            "type": "string"
          },
          "method": {
            "type": "string",
            "enum": [
              "GET",
              "POST"
            ]
          },
          "endpoint": {
            "type": "string"
          },
          "mcpTool": {
            "type": "string"
          }
        }
      },
      "AgentAskAnswer": {
        "type": "object",
        "required": [
          "id",
          "title",
          "answer",
          "citations",
          "actions",
          "score"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "answer": {
            "type": "string"
          },
          "citations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentAskAction"
            }
          },
          "score": {
            "type": "number"
          },
          "matchedAliases": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AgentAskResponse": {
        "type": "object",
        "required": [
          "question",
          "answers",
          "bestAnswer",
          "noConfidentMatch",
          "fallback",
          "truthBoundary",
          "meta"
        ],
        "properties": {
          "question": {
            "type": "string"
          },
          "answers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentAskAnswer"
            }
          },
          "bestAnswer": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AgentAskAnswer"
              },
              {
                "type": "null"
              }
            ]
          },
          "noConfidentMatch": {
            "type": "boolean"
          },
          "fallback": {
            "type": "object",
            "required": [
              "message",
              "contactUrl",
              "discoveryEndpoints"
            ],
            "properties": {
              "message": {
                "type": "string"
              },
              "contactUrl": {
                "type": "string"
              },
              "discoveryEndpoints": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "truthBoundary": {
            "type": "string"
          },
          "meta": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "AgentLiveCheckoutRequest": {
        "type": "object",
        "required": [
          "siteWorldId",
          "mode"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "live"
            ]
          },
          "siteWorldId": {
            "type": "string"
          },
          "product": {
            "$ref": "#/components/schemas/AgentCommerceProduct"
          },
          "sessionHours": {
            "type": "integer",
            "minimum": 1,
            "default": 1
          },
          "budgetCents": {
            "type": "integer",
            "minimum": 0,
            "description": "Optional agent budget guard in USD cents. Quotes above this value are rejected with a budget_exceeded blocker and no order or Stripe session is created."
          },
          "successPath": {
            "type": "string",
            "description": "Optional site-relative path for Stripe success redirect."
          },
          "cancelPath": {
            "type": "string",
            "description": "Optional site-relative path for Stripe cancel redirect."
          },
          "buyer": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            },
            "description": "Optional buyer identity for anonymous agents. A Firebase bearer token, when present, takes precedence."
          }
        }
      },
      "AgentLiveCheckoutBlocker": {
        "type": "object",
        "required": [
          "code",
          "severity",
          "ownerSystem",
          "message",
          "retryAction"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "site_world_not_found",
              "not_live_purchasable",
              "price_unavailable",
              "buyer_identity_required",
              "budget_exceeded",
              "stripe_unavailable"
            ]
          },
          "severity": {
            "type": "string",
            "enum": [
              "blocking"
            ]
          },
          "ownerSystem": {
            "type": "string",
            "enum": [
              "catalog",
              "stripe",
              "agent_budget",
              "buyer_identity"
            ]
          },
          "message": {
            "type": "string"
          },
          "retryAction": {
            "type": "string"
          }
        }
      },
      "AgentLiveCheckoutResponse": {
        "type": "object",
        "required": [
          "mode",
          "quote",
          "order",
          "checkout",
          "statusUrl",
          "truth"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "live"
            ]
          },
          "quote": {
            "$ref": "#/components/schemas/AgentCommerceQuote"
          },
          "budgetCents": {
            "type": [
              "integer",
              "null"
            ]
          },
          "withinBudget": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "order": {
            "type": "object",
            "additionalProperties": true
          },
          "checkout": {
            "type": "object",
            "required": [
              "provider",
              "sessionId",
              "url"
            ],
            "properties": {
              "provider": {
                "type": "string",
                "enum": [
                  "stripe"
                ]
              },
              "sessionId": {
                "type": "string"
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "livemode": {
                "type": "boolean"
              }
            }
          },
          "statusUrl": {
            "type": "string"
          },
          "nextSteps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "truth": {
            "type": "string"
          }
        }
      },
      "AgentLiveCheckoutBlockedResponse": {
        "type": "object",
        "required": [
          "error",
          "code",
          "blockers"
        ],
        "properties": {
          "error": {
            "type": "string"
          },
          "code": {
            "type": "string",
            "enum": [
              "live_checkout_blocked"
            ]
          },
          "mode": {
            "type": "string",
            "enum": [
              "live"
            ]
          },
          "quote": {
            "$ref": "#/components/schemas/AgentCommerceQuote"
          },
          "budgetCents": {
            "type": [
              "integer",
              "null"
            ]
          },
          "withinBudget": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "blockers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentLiveCheckoutBlocker"
            }
          },
          "truth": {
            "type": "string"
          }
        }
      },
      "AgentLiveOrderStatus": {
        "type": "object",
        "required": [
          "mode",
          "order",
          "paid",
          "provisioned",
          "truth"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "live"
            ]
          },
          "order": {
            "type": "object",
            "additionalProperties": true
          },
          "checkoutUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "livemode": {
            "type": "boolean"
          },
          "paid": {
            "type": "boolean"
          },
          "provisioned": {
            "type": "boolean"
          },
          "nextSteps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "truth": {
            "type": "string"
          }
        }
      },
      "AgentDryRunCheckoutRequest": {
        "type": "object",
        "required": [
          "siteWorldId",
          "mode"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "dry_run"
            ]
          },
          "siteWorldId": {
            "type": "string"
          },
          "product": {
            "$ref": "#/components/schemas/AgentCommerceProduct"
          },
          "sessionHours": {
            "type": "integer",
            "minimum": 1,
            "default": 1
          },
          "buyer": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            }
          }
        }
      },
      "AgentDryRunOrder": {
        "type": "object",
        "required": [
          "id",
          "dry_run",
          "status",
          "payment_status",
          "fulfillment_status",
          "item",
          "pricing",
          "entitlement_id"
        ],
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "string"
          },
          "dry_run": {
            "type": "boolean"
          },
          "status": {
            "type": "string",
            "enum": [
              "fulfilled"
            ]
          },
          "payment_status": {
            "type": "string",
            "enum": [
              "dry_run_paid"
            ]
          },
          "fulfillment_status": {
            "type": "string",
            "enum": [
              "provisioned"
            ]
          },
          "item": {
            "type": "object",
            "additionalProperties": true
          },
          "pricing": {
            "type": "object",
            "additionalProperties": true
          },
          "stripe": {
            "type": "object",
            "additionalProperties": true
          },
          "entitlement_id": {
            "type": "string"
          }
        }
      },
      "AgentMarketplaceEntitlement": {
        "type": "object",
        "required": [
          "id",
          "order_id",
          "sku",
          "access_state"
        ],
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "item_type": {
            "$ref": "#/components/schemas/AgentCommerceProduct"
          },
          "delivery_mode": {
            "type": "string"
          },
          "access_state": {
            "type": "string",
            "enum": [
              "provisioned",
              "manual_review_required",
              "revoked"
            ]
          },
          "dry_run": {
            "type": "boolean"
          }
        }
      },
      "AgentDryRunOrderResponse": {
        "type": "object",
        "properties": {
          "quote": {
            "$ref": "#/components/schemas/AgentCommerceQuote"
          },
          "order": {
            "$ref": "#/components/schemas/AgentDryRunOrder"
          },
          "receipt": {
            "type": "object",
            "additionalProperties": true
          },
          "entitlement": {
            "$ref": "#/components/schemas/AgentMarketplaceEntitlement"
          },
          "truth": {
            "type": "string"
          }
        }
      },
      "AgentEntitlementResponse": {
        "type": "object",
        "required": [
          "entitlement"
        ],
        "properties": {
          "entitlement": {
            "$ref": "#/components/schemas/AgentMarketplaceEntitlement"
          }
        }
      },
      "AgentEntitlementReadiness": {
        "type": "object",
        "required": [
          "mode",
          "siteWorldId",
          "entitled",
          "launchable",
          "blockers"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "dry_run"
            ]
          },
          "siteWorldId": {
            "type": "string"
          },
          "entitlement": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true
          },
          "entitled": {
            "type": "boolean"
          },
          "launchable": {
            "type": "boolean"
          },
          "blockers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "truth": {
            "type": "string"
          }
        }
      },
      "HostedRuntimeSessionConfig": {
        "type": "object",
        "properties": {
          "canonical_package_uri": {
            "type": [
              "string",
              "null"
            ]
          },
          "canonical_package_version": {
            "type": [
              "string",
              "null"
            ]
          },
          "prompt": {
            "type": [
              "string",
              "null"
            ]
          },
          "trajectory": {
            "type": [
              "string",
              "null"
            ]
          },
          "presentation_model": {
            "type": [
              "string",
              "null"
            ]
          },
          "debug_mode": {
            "type": "boolean"
          },
          "unsafe_allow_blocked_site_world": {
            "type": "boolean",
            "description": "Internal/local escape hatch only. Do not use for public or protected production flows."
          }
        }
      },
      "ResetHostedSessionRequest": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string"
          },
          "scenarioId": {
            "type": "string"
          },
          "startStateId": {
            "type": "string"
          },
          "seed": {
            "type": "integer"
          }
        }
      },
      "StepHostedSessionRequest": {
        "type": "object",
        "properties": {
          "episodeId": {
            "type": "string"
          },
          "action": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "autoPolicy": {
            "type": "boolean",
            "default": true
          }
        }
      },
      "RunBatchRequest": {
        "type": "object",
        "properties": {
          "numEpisodes": {
            "type": "integer",
            "minimum": 1,
            "default": 1
          },
          "taskId": {
            "type": "string"
          },
          "scenarioId": {
            "type": "string"
          },
          "startStateId": {
            "type": "string"
          },
          "seed": {
            "type": "integer"
          },
          "maxSteps": {
            "type": "integer",
            "minimum": 1
          }
        }
      },
      "ControlRequest": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "mode": {
            "type": "string"
          },
          "cameraId": {
            "type": "string"
          },
          "playback": {
            "type": "string"
          }
        }
      },
      "ExplorerRenderRequest": {
        "type": "object",
        "properties": {
          "cameraId": {
            "type": "string",
            "default": "head_rgb"
          },
          "pose": {
            "$ref": "#/components/schemas/ExplorerPose"
          },
          "viewportWidth": {
            "type": "integer"
          },
          "viewportHeight": {
            "type": "integer"
          },
          "refineMode": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "ExportRequest": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "default": "manifest"
          }
        }
      },
      "ExplorerPose": {
        "type": "object",
        "required": [
          "x",
          "y",
          "z",
          "yaw",
          "pitch"
        ],
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "z": {
            "type": "number"
          },
          "yaw": {
            "type": "number"
          },
          "pitch": {
            "type": "number"
          }
        }
      },
      "LaunchReadiness": {
        "type": "object",
        "required": [
          "entitled",
          "status",
          "launchable",
          "blockers"
        ],
        "properties": {
          "entitled": {
            "type": "boolean"
          },
          "status": {
            "$ref": "#/components/schemas/StatusLabel"
          },
          "launchable": {
            "type": "boolean"
          },
          "blockers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blocker_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LaunchBlockerDetail"
            }
          },
          "presentation_demo": {
            "type": "object",
            "additionalProperties": true
          },
          "runtime_only": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "LaunchBlockerDetail": {
        "type": "object",
        "required": [
          "code",
          "message",
          "source"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "access",
              "qualification",
              "runtime",
              "presentation_demo"
            ]
          }
        }
      },
      "CreateHostedSessionResponse": {
        "type": "object",
        "required": [
          "sessionId",
          "status",
          "site",
          "workspaceUrl"
        ],
        "properties": {
          "sessionId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "site": {
            "type": "object",
            "additionalProperties": true
          },
          "runtimeBackend": {
            "type": "string"
          },
          "launchable": {
            "type": "boolean"
          },
          "uiReady": {
            "type": "boolean"
          },
          "uiMode": {
            "type": "string"
          },
          "workspaceUrl": {
            "type": "string"
          }
        }
      },
      "HostedSession": {
        "type": "object",
        "required": [
          "sessionId",
          "sessionMode",
          "status",
          "site"
        ],
        "additionalProperties": true,
        "properties": {
          "sessionId": {
            "type": "string"
          },
          "sessionMode": {
            "type": "string",
            "enum": [
              "runtime_only",
              "presentation_demo"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "creating",
              "ready",
              "running",
              "stopped",
              "failed"
            ]
          },
          "site": {
            "type": "object",
            "additionalProperties": true
          },
          "robotProfile": {
            "$ref": "#/components/schemas/RobotProfile"
          },
          "taskSelection": {
            "type": "object",
            "additionalProperties": true
          },
          "runtimeConfig": {
            "type": "object",
            "additionalProperties": true
          },
          "latestEpisode": {
            "type": "object",
            "additionalProperties": true
          },
          "batchSummary": {
            "type": "object",
            "additionalProperties": true
          },
          "explorerState": {
            "type": "object",
            "additionalProperties": true
          },
          "artifactUris": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "datasetArtifacts": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "HostedSessionOperationResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "episode": {
            "type": "object",
            "additionalProperties": true
          },
          "summary": {
            "type": "object",
            "additionalProperties": true
          },
          "artifact_uris": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "dataset_artifacts": {
            "type": "object",
            "additionalProperties": true
          },
          "explorerState": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "PendingOperationResponse": {
        "type": "object",
        "required": [
          "accepted",
          "pendingOperation"
        ],
        "properties": {
          "accepted": {
            "type": "boolean"
          },
          "pendingOperation": {
            "type": "object",
            "additionalProperties": true
          },
          "episode": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "diagnostic": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "LaunchBlockedResponse": {
        "type": "object",
        "required": [
          "error",
          "code"
        ],
        "properties": {
          "error": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "blockers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blocker_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LaunchBlockerDetail"
            }
          },
          "diagnostic": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    }
  },
  "x-blueprint-truth-labels": [
    "capture_grounded",
    "provider_derived",
    "generated",
    "request_gated",
    "protected_robot_team",
    "legacy_commerce_read_only",
    "decision_or_abstention"
  ]
}
