{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "title": "Slack",
  "description": "Integration with Slack API enabling workspace communication including channel management, message retrieval, and posting capabilities for team collaboration",
  "x-icon": "/skills/slack/slack.jpg",
  "x-tags": [
    "Communication"
  ],
  "properties": {
    "enabled": {
      "type": "boolean",
      "title": "Enabled",
      "description": "Whether this skill is enabled",
      "default": false
    },
    "states": {
      "type": "object",
      "properties": {
        "get_channel": {
          "type": "string",
          "title": "Get Channel",
          "enum": [
            "disabled",
            "public",
            "private"
          ],
          "x-enum-title": [
            "Disabled",
            "Agent Owner + All Users",
            "Agent Owner Only"
          ],
          "description": "State of the get_channel skill",
          "default": "disabled"
        },
        "get_message": {
          "type": "string",
          "title": "Get Message",
          "enum": [
            "disabled",
            "public",
            "private"
          ],
          "x-enum-title": [
            "Disabled",
            "Agent Owner + All Users",
            "Agent Owner Only"
          ],
          "description": "State of the get_message skill",
          "default": "disabled"
        },
        "schedule_message": {
          "type": "string",
          "title": "Schedule Message",
          "enum": [
            "disabled",
            "public",
            "private"
          ],
          "x-enum-title": [
            "Disabled",
            "Agent Owner + All Users",
            "Agent Owner Only"
          ],
          "description": "State of the schedule_message skill",
          "default": "disabled"
        },
        "send_message": {
          "type": "string",
          "title": "Send Message",
          "enum": [
            "disabled",
            "public",
            "private"
          ],
          "x-enum-title": [
            "Disabled",
            "Agent Owner + All Users",
            "Agent Owner Only"
          ],
          "description": "State of the send_message skill",
          "default": "disabled"
        }
      },
      "description": "States for each Slack skill (disabled, public, or private)"
    },
    "slack_bot_token": {
      "type": "string",
      "title": "Slack Bot Token",
      "x-link": "[Get your API key](https://api.slack.com/)",
      "x-sensitive": true,
      "description": "Slack bot token for API access"
    }
  },
  "required": [
    "states",
    "enabled"
  ],
  "if": {
    "properties": {
      "enabled": {
        "const": true
      }
    }
  },
  "then": {
    "required": [
      "slack_bot_token"
    ]
  },
  "additionalProperties": true
}
