{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/revyl/json-schema/revyl-app-response-schema.json",
  "title": "AppResponse",
  "description": "Response model for an app.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/revyl-apps-api-openapi.yml#/components/schemas/AppResponse",
  "properties": {
    "attached_tests": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": 0,
      "title": "Attached Tests"
    },
    "attribution_ready": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": false,
      "title": "Attribution Ready"
    },
    "builds_count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Builds Count"
    },
    "cloud_agent_conversation": {
      "anyOf": [
        {
          "$ref": "#/$defs/CloudAgentConversationAttributionSummary"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Created At"
    },
    "current_build_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Current Build Id"
    },
    "current_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Current Version"
    },
    "default_branch_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Default Branch Id"
    },
    "default_branch_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Default Branch Name"
    },
    "default_branch_pinned_build_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Default Branch Pinned Build Id"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "expo_synced": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": false,
      "title": "Expo Synced"
    },
    "has_atlas": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "Whether this app has renderable Atlas content. Populated by app collection endpoints; null when the caller did not request Atlas enrichment.",
      "title": "Has Atlas"
    },
    "icon_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Short-lived URL (at least five minutes) of the app's icon, taken from the latest checked build. Checks run after uploads at most once per 24 hours. Populated by the app list and app detail endpoints; null when no build has yielded an icon.",
      "title": "Icon Url"
    },
    "id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Id"
    },
    "latest_build_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Latest Build Id"
    },
    "latest_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Latest Version"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Name"
    },
    "org_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Org Id"
    },
    "pinned_tests": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": 0,
      "title": "Pinned Tests"
    },
    "platform": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Platform"
    },
    "recent_executions": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": 0,
      "title": "Recent Executions"
    },
    "rolling_pass_rate": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Rolling Pass Rate"
    },
    "static_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Static Url"
    },
    "system_prompt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "System Prompt"
    },
    "versions_count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": 0,
      "title": "Versions Count"
    }
  },
  "type": "object",
  "$defs": {
    "CapyCloudAgentConversationAttributionLaunch": {
      "description": "Capy launch facts displayed with an ordinary related-resource attribution.",
      "properties": {
        "conversation_origin": {
          "$ref": "#/$defs/CloudAgentConversationOrigin"
        },
        "launch_submission_status": {
          "$ref": "#/$defs/CloudAgentConversationLaunchSubmissionStatus"
        }
      },
      "required": [
        "conversation_origin",
        "launch_submission_status"
      ],
      "title": "CapyCloudAgentConversationAttributionLaunch",
      "type": "object"
    },
    "CloudAgentConversationAttributionSummary": {
      "properties": {
        "cloud_agent_provider_key": {
          "$ref": "#/$defs/CloudAgentProviderKey"
        },
        "conversation_id": {
          "format": "uuid",
          "title": "Conversation Id",
          "type": "string"
        },
        "launch": {
          "anyOf": [
            {
              "$ref": "#/$defs/CursorCloudAgentConversationAttributionLaunch"
            },
            {
              "$ref": "#/$defs/CapyCloudAgentConversationAttributionLaunch"
            },
            {
              "type": "null"
            }
          ],
          "title": "Launch"
        },
        "provider_conversation_id": {
          "anyOf": [
            {
              "maxLength": 255,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Provider Conversation Id"
        },
        "provider_conversation_url": {
          "anyOf": [
            {
              "maxLength": 2048,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Provider Conversation Url"
        },
        "recorded_user": {
          "$ref": "#/$defs/CloudAgentConversationRecordedUser"
        }
      },
      "required": [
        "conversation_id",
        "recorded_user",
        "cloud_agent_provider_key"
      ],
      "title": "CloudAgentConversationAttributionSummary",
      "type": "object"
    },
    "CloudAgentConversationLaunchSubmissionStatus": {
      "description": "Once-only result of submitting the founding launch to its provider.",
      "enum": [
        "not_attempted",
        "dispatching",
        "accepted",
        "rejected",
        "unconfirmed"
      ],
      "title": "CloudAgentConversationLaunchSubmissionStatus",
      "type": "string"
    },
    "CloudAgentConversationOrigin": {
      "description": "Bounded origin of a cloud-agent conversation.",
      "enum": [
        "revyl_atlas_screen",
        "revyl_test_report",
        "revyl_test_report_atlas_screen",
        "revyl_device_session",
        "revyl_device_session_atlas_screen",
        "revyl_proof_of_changes",
        "external_provider"
      ],
      "title": "CloudAgentConversationOrigin",
      "type": "string"
    },
    "CloudAgentConversationRecordedUser": {
      "properties": {
        "user_id": {
          "format": "uuid",
          "title": "User Id",
          "type": "string"
        }
      },
      "required": [
        "user_id"
      ],
      "title": "CloudAgentConversationRecordedUser",
      "type": "object"
    },
    "CloudAgentProviderKey": {
      "description": "Immutable provider identity for one cloud-agent conversation.",
      "enum": [
        "cursor_cloud",
        "capy"
      ],
      "title": "CloudAgentProviderKey",
      "type": "string"
    },
    "CursorCloudAgentConversationAttributionLaunch": {
      "description": "Launch facts displayed with an ordinary related-resource attribution.",
      "properties": {
        "conversation_origin": {
          "$ref": "#/$defs/CloudAgentConversationOrigin"
        },
        "launch_connection_type": {
          "$ref": "#/$defs/CursorConnectionType"
        },
        "launch_submission_status": {
          "$ref": "#/$defs/CloudAgentConversationLaunchSubmissionStatus"
        }
      },
      "required": [
        "launch_connection_type",
        "conversation_origin",
        "launch_submission_status"
      ],
      "title": "CursorCloudAgentConversationAttributionLaunch",
      "type": "object"
    },
    "CursorConnectionType": {
      "enum": [
        "personal",
        "organization_default"
      ],
      "title": "CursorConnectionType",
      "type": "string"
    }
  }
}