openapi: "3.0.3"
info:
  title: "Jules PlatPhormNews API"
  version: "0.5.1"
  description: "Canonical AI coding-session workspace, repo-assistance, issue triage, onboarding-to-code handoff, prompt-to-task, MCP/API tool execution, and developer workflow assistant for the PlatPhormNews web mesh."
servers:
  - 
    url: "https://jules.platphormnews.com"
    description: "Production"
tags:
  - 
    name: "Sessions"
    description: "Coding-session workspace APIs"
  - 
    name: "Onboard"
    description: "Onboard-to-implementation handoff APIs"
  - 
    name: "Integrations"
    description: "Cross-site coding workflow integrations"
  - 
    name: "MCP"
    description: "MCP JSON-RPC and discovery"
  - 
    name: "Discovery"
    description: "Public discovery files"
paths:
  /api/v1/operator/session:
    get:
      operationId: "getApiV1OperatorSession"
      summary: "Read public-safe operator-session status."
      description: "Read public-safe operator-session status. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: "postApiV1OperatorSession"
      summary: "Exchange PLATPHORM_API_KEY for an expiring signed HttpOnly operator session."
      description: "Exchange PLATPHORM_API_KEY for an expiring signed HttpOnly operator session. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    delete:
      operationId: "deleteApiV1OperatorSession"
      summary: "Clear the current HttpOnly operator session."
      description: "Clear the current HttpOnly operator session. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/health:
    get:
      operationId: "getApiHealth"
      summary: "Platform health payload."
      description: "Platform health payload. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/health:
    get:
      operationId: "getApiV1Health"
      summary: "Versioned platform health payload."
      description: "Versioned platform health payload. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/version:
    get:
      operationId: "getApiVersion"
      summary: "Exact Jules release identity."
      description: "Exact Jules release identity. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/docs:
    get:
      operationId: "getApiDocs"
      summary: "OpenAPI JSON specification."
      description: "OpenAPI JSON specification. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /openapi.yaml:
    get:
      operationId: "getOpenapiYaml"
      summary: "OpenAPI YAML specification."
      description: "OpenAPI YAML specification. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /.well-known/mcp.json:
    get:
      operationId: "getWellKnownMcpJson"
      summary: "MCP discovery manifest."
      description: "MCP discovery manifest. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /.well-known/agents.json:
    get:
      operationId: "getWellKnownAgentsJson"
      summary: "Agent discovery manifest."
      description: "Agent discovery manifest. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /.well-known/api-catalog:
    get:
      operationId: "getWellKnownApiCatalog"
      summary: "RFC 9727 API catalog in Linkset JSON."
      description: "RFC 9727 API catalog in Linkset JSON. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /.well-known/ai-plugin.json:
    get:
      operationId: "getWellKnownAiPluginJson"
      summary: "AI plugin manifest."
      description: "AI plugin manifest. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /.well-known/security.txt:
    get:
      operationId: "getWellKnownSecurityTxt"
      summary: "Security contact."
      description: "Security contact. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /.well-known/trust.json:
    get:
      operationId: "getWellKnownTrustJson"
      summary: "Trust policy."
      description: "Trust policy. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/mcp:
    get:
      operationId: "getApiMcp"
      summary: "MCP metadata and usage."
      description: "MCP metadata and usage. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: "postApiMcp"
      summary: "Bounded JSON-RPC MCP endpoint; mutating tools enforce PLATPHORM_API_KEY."
      description: "Bounded JSON-RPC MCP endpoint; mutating tools enforce PLATPHORM_API_KEY. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1alpha/auth-status:
    get:
      operationId: "getApiV1alphaAuthStatus"
      summary: "Public Google Jules provider status; does not expose JULES_API_KEY."
      description: "Public Google Jules provider status; does not expose JULES_API_KEY. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1alpha/sources:
    get:
      operationId: "getApiV1alphaSources"
      summary: "Protected wrapper for connected Google Jules repository sources."
      description: "Protected wrapper for connected Google Jules repository sources. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1alpha/sessions:
    get:
      operationId: "getApiV1alphaSessions"
      summary: "Protected wrapper for Google Jules session list."
      description: "Protected wrapper for Google Jules session list. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: "postApiV1alphaSessions"
      summary: "Protected wrapper to create a Google Jules coding session."
      description: "Protected wrapper to create a Google Jules coding session. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1alpha/sessions/{id}:
    get:
      operationId: "getApiV1alphaSessionsId"
      summary: "Protected wrapper for Google Jules session detail."
      description: "Protected wrapper for Google Jules session detail. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    delete:
      operationId: "deleteApiV1alphaSessionsId"
      summary: "Protected wrapper for Google Jules session deletion."
      description: "Protected wrapper for Google Jules session deletion. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1alpha/sessions/{id}/activities:
    get:
      operationId: "getApiV1alphaSessionsIdActivities"
      summary: "Protected wrapper for Google Jules activity feed."
      description: "Protected wrapper for Google Jules activity feed. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1alpha/sessions/{id}:sendMessage:
    post:
      operationId: "postApiV1alphaSessionsIdSendMessage"
      summary: "Protected wrapper to send feedback to a Google Jules session."
      description: "Protected wrapper to send feedback to a Google Jules session. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1alpha/sessions/{id}:approvePlan:
    post:
      operationId: "postApiV1alphaSessionsIdApprovePlan"
      summary: "Protected wrapper to approve a Google Jules plan."
      description: "Protected wrapper to approve a Google Jules plan. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/github/auth-status:
    get:
      operationId: "getApiGithubAuthStatus"
      summary: "Public server-side GitHub credential status."
      description: "Public server-side GitHub credential status. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/github/repositories:
    get:
      operationId: "getApiGithubRepositories"
      summary: "Protected repository list from the configured server-side GitHub account."
      description: "Protected repository list from the configured server-side GitHub account. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: "postApiGithubRepositories"
      summary: "Protected repository list with optional owner filter."
      description: "Protected repository list with optional owner filter. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/github/repositories/{owner}/{repo}/branches:
    get:
      operationId: "getApiGithubRepositoriesOwnerRepoBranches"
      summary: "Protected branch list for an in-scope platphorm-* repository."
      description: "Protected branch list for an in-scope platphorm-* repository. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/github/repositories/create:
    post:
      operationId: "postApiGithubRepositoriesCreate"
      summary: "Protected repository creation through the configured server-side GitHub account."
      description: "Protected repository creation through the configured server-side GitHub account. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions:
    get:
      operationId: "getApiV1Sessions"
      summary: "List public-safe sessions; protected callers see private server sessions."
      description: "List public-safe sessions; protected callers see private server sessions. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: "postApiV1Sessions"
      summary: "Create protected server-side Jules session."
      description: "Create protected server-side Jules session. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/repositories:
    get:
      operationId: "getApiV1Repositories"
      summary: "List public non-private platphorm-* repository choices; protected callers may see configured private repositories."
      description: "List public non-private platphorm-* repository choices; protected callers may see configured private repositories. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/{id}:
    get:
      operationId: "getApiV1SessionsId"
      summary: "Get public-safe or protected session details."
      description: "Get public-safe or protected session details. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    put:
      operationId: "putApiV1SessionsId"
      summary: "Update protected server-side session."
      description: "Update protected server-side session. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    delete:
      operationId: "deleteApiV1SessionsId"
      summary: "Delete protected server-side session."
      description: "Delete protected server-side session. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/{id}/execute:
    post:
      operationId: "postApiV1SessionsIdExecute"
      summary: "Start a provider execution from the canonical session WorkIntent."
      description: "Start a provider execution from the canonical session WorkIntent. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/{id}/sync:
    post:
      operationId: "postApiV1SessionsIdSync"
      summary: "Synchronize a stored session from its Google Jules provider reference."
      description: "Synchronize a stored session from its Google Jules provider reference. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/{id}/sync/async:
    post:
      operationId: "postApiV1SessionsIdSyncAsync"
      summary: "Queue server-side provider synchronization without blocking the browser request."
      description: "Queue server-side provider synchronization without blocking the browser request. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/{id}/pull-request:
    get:
      operationId: "getApiV1SessionsIdPullRequest"
      summary: "Read live GitHub state for a real in-scope Jules pull request output."
      description: "Read live GitHub state for a real in-scope Jules pull request output. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: "postApiV1SessionsIdPullRequest"
      summary: "Approve or SHA-pinned squash-merge a real in-scope Jules pull request."
      description: "Approve or SHA-pinned squash-merge a real in-scope Jules pull request. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/reconcile:
    post:
      operationId: "postApiV1SessionsReconcile"
      summary: "Reconcile all paginated platphorm-* Google Jules sessions into canonical Cloudflare D1 records."
      description: "Reconcile all paginated platphorm-* Google Jules sessions into canonical Cloudflare D1 records. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/schedules:
    get:
      operationId: "getApiV1Schedules"
      summary: "List public-safe recurring Jules schedule state; protected callers also receive instructions."
      description: "List public-safe recurring Jules schedule state; protected callers also receive instructions. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: "postApiV1Schedules"
      summary: "Create a durable recurring Jules schedule."
      description: "Create a durable recurring Jules schedule. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/schedules/{id}:
    get:
      operationId: "getApiV1SchedulesId"
      summary: "Get public-safe or protected schedule detail."
      description: "Get public-safe or protected schedule detail. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    put:
      operationId: "putApiV1SchedulesId"
      summary: "Edit, enable, or pause a durable Jules schedule."
      description: "Edit, enable, or pause a durable Jules schedule. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    delete:
      operationId: "deleteApiV1SchedulesId"
      summary: "Delete a durable Jules schedule."
      description: "Delete a durable Jules schedule. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/schedules/{id}/run:
    post:
      operationId: "postApiV1SchedulesIdRun"
      summary: "Run a durable Jules schedule immediately."
      description: "Run a durable Jules schedule immediately. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/schedules/{id}/execute:
    post:
      operationId: "postApiV1SchedulesIdExecute"
      summary: "Cloudflare queue callback that executes one durable Jules schedule run."
      description: "Cloudflare queue callback that executes one durable Jules schedule run. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/{id}/export:
    post:
      operationId: "postApiV1SessionsIdExport"
      summary: "Export a session as JSON or Markdown."
      description: "Export a session as JSON or Markdown. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/import:
    post:
      operationId: "postApiV1SessionsImport"
      summary: "Import session JSON."
      description: "Import session JSON. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/context/resolve:
    post:
      operationId: "postApiV1ContextResolve"
      summary: "Resolve a work description into a normalized intent and trusted context references."
      description: "Resolve a work description into a normalized intent and trusted context references. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/{id}/messages:
    get:
      operationId: "getApiV1SessionsIdMessages"
      summary: "List public-safe messages or protected session messages."
      description: "List public-safe messages or protected session messages. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: "postApiV1SessionsIdMessages"
      summary: "Add protected session message."
      description: "Add protected session message. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/sessions/{id}/plans:
    get:
      operationId: "getApiV1SessionsIdPlans"
      summary: "List public-safe plans or protected session plans."
      description: "List public-safe plans or protected session plans. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: "postApiV1SessionsIdPlans"
      summary: "Generate implementation plan and task breakdown."
      description: "Generate implementation plan and task breakdown. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/plans/{id}:
    get:
      operationId: "getApiV1PlansId"
      summary: "Get plan details."
      description: "Get plan details. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/onboard/applications:
    get:
      operationId: "getApiV1OnboardApplications"
      summary: "Public-safe Onboard capability status; imported records are shown only to protected callers."
      description: "Public-safe Onboard capability status; imported records are shown only to protected callers. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/onboard/applications/{id}:
    get:
      operationId: "getApiV1OnboardApplicationsId"
      summary: "Get a protected local Onboard import."
      description: "Get a protected local Onboard import. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/onboard/import:
    post:
      operationId: "postApiV1OnboardImport"
      summary: "Import a protected public-safe Onboard summary."
      description: "Import a protected public-safe Onboard summary. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/onboard/import/{id}/create-session:
    post:
      operationId: "postApiV1OnboardImportIdCreateSession"
      summary: "Create a protected Jules session from an Onboard import."
      description: "Create a protected Jules session from an Onboard import. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/onboard/import/{id}/generate-plan:
    post:
      operationId: "postApiV1OnboardImportIdGeneratePlan"
      summary: "Generate a protected plan from an Onboard import."
      description: "Generate a protected plan from an Onboard import. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/onboard/import/{id}/create-kanban-tasks:
    post:
      operationId: "postApiV1OnboardImportIdCreateKanbanTasks"
      summary: "Reports unsupported until an Onboard-to-Kanban session adapter is configured; creates nothing."
      description: "Reports unsupported until an Onboard-to-Kanban session adapter is configured; creates nothing. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/onboard/import/{id}/generate-docs:
    post:
      operationId: "postApiV1OnboardImportIdGenerateDocs"
      summary: "Reports unsupported until a Docs execution adapter is configured; creates nothing."
      description: "Reports unsupported until a Docs execution adapter is configured; creates nothing. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      parameters:
        - 
          name: "id"
          in: "path"
          required: true
          description: "Canonical Jules resource identifier."
          schema:
            type: "string"
            minLength: 1
            maxLength: 256
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/integrations:
    get:
      operationId: "getApiV1Integrations"
      summary: "List Jules integration catalog."
      description: "List Jules integration catalog. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/integrations/status:
    get:
      operationId: "getApiV1IntegrationsStatus"
      summary: "Integration status, with optional live checks."
      description: "Integration status, with optional live checks. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/integrations/mcp/sync:
    post:
      operationId: "postApiV1IntegrationsMcpSync"
      summary: "Reports unsupported until an MCP sync adapter is configured; syncs nothing."
      description: "Reports unsupported until an MCP sync adapter is configured; syncs nothing. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/integrations/kanban/create-tasks:
    post:
      operationId: "postApiV1IntegrationsKanbanCreateTasks"
      summary: "Creates a confirmed public-safe Kanban task from a Jules session."
      description: "Creates a confirmed public-safe Kanban task from a Jules session. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/integrations/docs/report:
    post:
      operationId: "postApiV1IntegrationsDocsReport"
      summary: "Publishes a public-safe Jules report through the protected Docs handoff receiver and returns a confirmed document."
      description: "Publishes a public-safe Jules report through the protected Docs handoff receiver and returns a confirmed document. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/integrations/sandbox/dry-run:
    post:
      operationId: "postApiV1IntegrationsSandboxDryRun"
      summary: "Validates a bounded Sandbox template dry-run and records confirmed evidence without provider execution."
      description: "Validates a bounded Sandbox template dry-run and records confirmed evidence without provider execution. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/integrations/claws/dry-run:
    post:
      operationId: "postApiV1IntegrationsClawsDryRun"
      summary: "Validates a bounded Claws toolchain dry-run and records confirmed planning evidence without workflow execution."
      description: "Validates a bounded Claws toolchain dry-run and records confirmed planning evidence without workflow execution. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/integrations/browserops/run:
    post:
      operationId: "postApiV1IntegrationsBrowseropsRun"
      summary: "Runs a selected BrowserOps journey through the protected server-side adapter and returns the confirmed downstream run."
      description: "Runs a selected BrowserOps journey through the protected server-side adapter and returns the confirmed downstream run. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/integrations/evals/run:
    post:
      operationId: "postApiV1IntegrationsEvalsRun"
      summary: "Discovers an active Evals suite, starts a protected run, and returns its confirmed downstream run."
      description: "Discovers an active Evals suite, starts a protected run, and returns its confirmed downstream run. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/network/graph:
    get:
      operationId: "getApiV1NetworkGraph"
      summary: "Read root network graph with degraded status."
      description: "Read root network graph with degraded status. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/network/graph/sync:
    post:
      operationId: "postApiV1NetworkGraphSync"
      summary: "Protected graph sync."
      description: "Protected graph sync. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/network/sites:
    get:
      operationId: "getApiV1NetworkSites"
      summary: "Discovered site list."
      description: "Discovered site list. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/network/trusted-domains:
    get:
      operationId: "getApiV1NetworkTrustedDomains"
      summary: "Trusted domain policy."
      description: "Trusted domain policy. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/network/route-compliance:
    get:
      operationId: "getApiV1NetworkRouteCompliance"
      summary: "Route compliance summary."
      description: "Route compliance summary. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/v1/network/discovery-compliance:
    get:
      operationId: "getApiV1NetworkDiscoveryCompliance"
      summary: "Discovery compliance summary."
      description: "Discovery compliance summary. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      security:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /api/register:
    post:
      operationId: "postApiRegister"
      summary: "Register Jules product identity against fixed trusted PlatPhormNews endpoints."
      description: "Register Jules product identity against fixed trusted PlatPhormNews endpoints. Responses use the standard Jules success or error envelope and preserve trace identifiers."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
      security:
        - 
          PlatPhormApiKey:
[]
        - 
          PlatPhormBearer:
[]
      responses:
        200:
          description: "Successful response."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponse"
        400:
          description: "Invalid request."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        401:
          description: "PLATPHORM_API_KEY required."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        403:
          description: "PLATPHORM_API_KEY rejected."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
components:
  schemas:
    SuccessResponse:
      type: "object"
      required:
        - "ok"
        - "data"
      properties:
        ok:
          type: "boolean"
          enum:
            - true
        data:
          type: "object"
          additionalProperties: true
    ErrorResponse:
      type: "object"
      required:
        - "ok"
        - "error"
      properties:
        ok:
          type: "boolean"
          enum:
            - false
        error:
          type: "object"
          required:
            - "code"
            - "message"
          properties:
            code:
              type: "string"
            message:
              type: "string"
            details:
              type: "object"
              additionalProperties: true
  securitySchemes:
    PlatPhormApiKey:
      type: "apiKey"
      in: "header"
      name: "X-PlatPhorm-API-Key"
      description: "Set to PLATPHORM_API_KEY for protected Jules actions."
    PlatPhormBearer:
      type: "http"
      scheme: "bearer"
      description: "Authorization: Bearer $PLATPHORM_API_KEY"