{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "AbsolutePathBuf": {
      "description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
      "type": "string"
    },
    "AppSummary": {
      "description": "EXPERIMENTAL - app metadata summary for plugin responses.",
      "properties": {
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": "string"
        },
        "installUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "needsAuth": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "name",
        "needsAuth"
      ],
      "type": "object"
    },
    "PluginAuthPolicy": {
      "enum": [
        "ON_INSTALL",
        "ON_USE"
      ],
      "type": "string"
    },
    "PluginDetail": {
      "properties": {
        "apps": {
          "items": {
            "$ref": "#/definitions/AppSummary"
          },
          "type": "array"
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "marketplaceName": {
          "type": "string"
        },
        "marketplacePath": {
          "$ref": "#/definitions/AbsolutePathBuf"
        },
        "mcpServers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "skills": {
          "items": {
            "$ref": "#/definitions/SkillSummary"
          },
          "type": "array"
        },
        "summary": {
          "$ref": "#/definitions/PluginSummary"
        }
      },
      "required": [
        "apps",
        "marketplaceName",
        "marketplacePath",
        "mcpServers",
        "skills",
        "summary"
      ],
      "type": "object"
    },
    "PluginInstallPolicy": {
      "enum": [
        "NOT_AVAILABLE",
        "AVAILABLE",
        "INSTALLED_BY_DEFAULT"
      ],
      "type": "string"
    },
    "PluginInterface": {
      "properties": {
        "brandColor": {
          "type": [
            "string",
            "null"
          ]
        },
        "capabilities": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "category": {
          "type": [
            "string",
            "null"
          ]
        },
        "composerIcon": {
          "anyOf": [
            {
              "$ref": "#/definitions/AbsolutePathBuf"
            },
            {
              "type": "null"
            }
          ]
        },
        "defaultPrompt": {
          "description": "Starter prompts for the plugin. Capped at 3 entries with a maximum of 128 characters per entry.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "developerName": {
          "type": [
            "string",
            "null"
          ]
        },
        "displayName": {
          "type": [
            "string",
            "null"
          ]
        },
        "logo": {
          "anyOf": [
            {
              "$ref": "#/definitions/AbsolutePathBuf"
            },
            {
              "type": "null"
            }
          ]
        },
        "longDescription": {
          "type": [
            "string",
            "null"
          ]
        },
        "privacyPolicyUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "screenshots": {
          "items": {
            "$ref": "#/definitions/AbsolutePathBuf"
          },
          "type": "array"
        },
        "shortDescription": {
          "type": [
            "string",
            "null"
          ]
        },
        "termsOfServiceUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "websiteUrl": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "capabilities",
        "screenshots"
      ],
      "type": "object"
    },
    "PluginSource": {
      "oneOf": [
        {
          "properties": {
            "path": {
              "$ref": "#/definitions/AbsolutePathBuf"
            },
            "type": {
              "enum": [
                "local"
              ],
              "title": "LocalPluginSourceType",
              "type": "string"
            }
          },
          "required": [
            "path",
            "type"
          ],
          "title": "LocalPluginSource",
          "type": "object"
        }
      ]
    },
    "PluginSummary": {
      "properties": {
        "authPolicy": {
          "$ref": "#/definitions/PluginAuthPolicy"
        },
        "enabled": {
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "installPolicy": {
          "$ref": "#/definitions/PluginInstallPolicy"
        },
        "installed": {
          "type": "boolean"
        },
        "interface": {
          "anyOf": [
            {
              "$ref": "#/definitions/PluginInterface"
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "type": "string"
        },
        "source": {
          "$ref": "#/definitions/PluginSource"
        }
      },
      "required": [
        "authPolicy",
        "enabled",
        "id",
        "installPolicy",
        "installed",
        "name",
        "source"
      ],
      "type": "object"
    },
    "SkillInterface": {
      "properties": {
        "brandColor": {
          "type": [
            "string",
            "null"
          ]
        },
        "defaultPrompt": {
          "type": [
            "string",
            "null"
          ]
        },
        "displayName": {
          "type": [
            "string",
            "null"
          ]
        },
        "iconLarge": {
          "type": [
            "string",
            "null"
          ]
        },
        "iconSmall": {
          "type": [
            "string",
            "null"
          ]
        },
        "shortDescription": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "SkillSummary": {
      "properties": {
        "description": {
          "type": "string"
        },
        "interface": {
          "anyOf": [
            {
              "$ref": "#/definitions/SkillInterface"
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "shortDescription": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "description",
        "name",
        "path"
      ],
      "type": "object"
    }
  },
  "properties": {
    "plugin": {
      "$ref": "#/definitions/PluginDetail"
    }
  },
  "required": [
    "plugin"
  ],
  "title": "PluginReadResponse",
  "type": "object"
}