{
  "name": "@microfox/slack",
  "title": "Slack",
  "description": "A proxy for the official @slack/web-api, providing a curated set of the most useful functions.",
  "path": "packages/slack",
  "dependencies": ["@slack/web-api", "@microfox/slack-oauth"],
  "status": "stable",
  "authType": "apikey",
  "authEndpoint": "/connect/slack",
  "documentation": "https://www.npmjs.com/package/@microfox/slack",
  "icon": "https://raw.githubusercontent.com/microfox-ai/microfox/refs/heads/main/logos/slack-icon.svg",
  "constructors": [
    {
      "name": "MicrofoxSlackClient",
      "description": "Create a new Slack MicrofoxSlackClient client through which you can interact with the API",
      "auth": "oauth2",
      "authSdk": "@microfox/slack-oauth",
      "authEndpoint": "/connect/slack-oauth",
      "requiredKeys": [
        {
          "key": "SLACK_ACCESS_TOKEN",
          "displayName": "Slack Access Token",
          "description": "The access token for Slack OAuth. This token is used to authenticate requests to the Slack API."
        }
      ],
      "internalKeys": [
        {
          "key": "SLACK_CLIENT_ID",
          "displayName": "Slack Client ID",
          "description": "The client ID for Slack OAuth. You can obtain this from your Slack App settings."
        },
        {
          "key": "SLACK_CLIENT_SECRET",
          "displayName": "Slack Client Secret",
          "description": "The client secret for Slack OAuth. You can obtain this from your Slack App settings."
        },
        {
          "key": "SLACK_ACCESS_TOKEN",
          "displayName": "Slack Access Token",
          "description": "The access token for Slack OAuth. This token is used to authenticate requests to the Slack API."
        },
        {
          "key": "SCOPES",
          "displayName": "Scopes",
          "description": "The scopes for Slack OAuth authentication. This is used to specify the permissions that the client application needs."
        }
      ],
      "botConfig": [
        {
          "key": "SLACK_AUTHOR_NAME",
          "displayName": "Bot Name",
          "description": "Name that will appear as the message sender",
          "ui": {
            "type": "text",
            "label": "Bot Name",
            "placeholder": "Enter bot name"
          }
        },
        {
          "key": "SLACK_ICON_URL",
          "displayName": "Bot Icon",
          "description": "Icon that will appear as the bot's avatar",
          "ui": {
            "type": "image",
            "label": "Bot Icon"
          }
        }
      ],
      "functionalities": [
        "addUsersToChannel",
        "createChannel",
        "getActiveUsers",
        "getActiveUsersIds",
        "getChannelConversationInfo",
        "getChannelMembers",
        "getChannels",
        "getChannelsIds",
        "getConversationHistory",
        "getFileInfo",
        "getUserByEmail",
        "getUserChannels",
        "getUserInfo",
        "getUsersByEmails",
        "joinChannel",
        "messageChannel",
        "messageChannels",
        "messageUser",
        "messageUsers",
        "reactMessage",
        "removeUserFromChannel",
        "replyMessage",
        "setReminder",
        "uploadFile"
      ]
    }
  ],
  "extraInfo": [
    "This package is a proxy for @slack/web-api.",
    "Use `new WebClient(token)` to create a new Slack client."
  ],
  "platformType": "communication"
}
