{
  "id": "slack",
  "activation": {
    "onStartup": false
  },
  "channels": [
    "slack"
  ],
  "channelEnvVars": {
    "slack": [
      "SLACK_BOT_TOKEN",
      "SLACK_APP_TOKEN",
      "SLACK_USER_TOKEN"
    ]
  },
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {}
  },
  "channelConfigs": {
    "slack": {
      "schema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "mode": {
            "default": "socket",
            "type": "string",
            "enum": [
              "socket",
              "http"
            ]
          },
          "socketMode": {
            "type": "object",
            "properties": {
              "clientPingTimeout": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "serverPingTimeout": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "pingPongLoggingEnabled": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "signingSecret": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "env"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "file"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "exec"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            ]
          },
          "webhookPath": {
            "default": "/slack/events",
            "type": "string"
          },
          "capabilities": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "object",
                "properties": {
                  "interactiveReplies": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "execApprovals": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "approvers": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    }
                  ]
                }
              },
              "agentFilter": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "sessionFilter": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "target": {
                "type": "string",
                "enum": [
                  "dm",
                  "channel",
                  "both"
                ]
              }
            },
            "additionalProperties": false
          },
          "markdown": {
            "type": "object",
            "properties": {
              "tables": {
                "type": "string",
                "enum": [
                  "off",
                  "bullets",
                  "code",
                  "block"
                ]
              }
            },
            "additionalProperties": false
          },
          "enabled": {
            "type": "boolean"
          },
          "commands": {
            "type": "object",
            "properties": {
              "native": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "const": "auto"
                  }
                ]
              },
              "nativeSkills": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "const": "auto"
                  }
                ]
              }
            },
            "additionalProperties": false
          },
          "configWrites": {
            "type": "boolean"
          },
          "botToken": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "env"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "file"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "exec"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            ]
          },
          "appToken": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "env"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "file"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "exec"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            ]
          },
          "userToken": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "env"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string",
                        "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "file"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "const": "exec"
                      },
                      "provider": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "source",
                      "provider",
                      "id"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            ]
          },
          "userTokenReadOnly": {
            "default": true,
            "type": "boolean"
          },
          "allowBots": {
            "type": "boolean"
          },
          "dangerouslyAllowNameMatching": {
            "type": "boolean"
          },
          "requireMention": {
            "type": "boolean"
          },
          "groupPolicy": {
            "default": "allowlist",
            "type": "string",
            "enum": [
              "open",
              "disabled",
              "allowlist"
            ]
          },
          "contextVisibility": {
            "type": "string",
            "enum": [
              "all",
              "allowlist",
              "allowlist_quote"
            ]
          },
          "historyLimit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "dmHistoryLimit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "dms": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "object",
              "properties": {
                "historyLimit": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "additionalProperties": false
            }
          },
          "textChunkLimit": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "streaming": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "enum": [
                  "off",
                  "partial",
                  "block",
                  "progress"
                ]
              },
              "chunkMode": {
                "type": "string",
                "enum": [
                  "length",
                  "newline"
                ]
              },
              "preview": {
                "type": "object",
                "properties": {
                  "chunk": {
                    "type": "object",
                    "properties": {
                      "minChars": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      "maxChars": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      "breakPreference": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "paragraph"
                          },
                          {
                            "type": "string",
                            "const": "newline"
                          },
                          {
                            "type": "string",
                            "const": "sentence"
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  },
                  "toolProgress": {
                    "type": "boolean"
                  },
                  "commandText": {
                    "type": "string",
                    "enum": [
                      "raw",
                      "status"
                    ]
                  }
                },
                "additionalProperties": false
              },
              "progress": {
                "type": "object",
                "properties": {
                  "label": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean",
                        "const": false
                      }
                    ]
                  },
                  "labels": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "maxLines": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "render": {
                    "type": "string",
                    "enum": [
                      "text",
                      "rich"
                    ]
                  },
                  "toolProgress": {
                    "type": "boolean"
                  },
                  "commandText": {
                    "type": "string",
                    "enum": [
                      "raw",
                      "status"
                    ]
                  }
                },
                "additionalProperties": false
              },
              "block": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "coalesce": {
                    "type": "object",
                    "properties": {
                      "minChars": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      "maxChars": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      "idleMs": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              "nativeTransport": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "mediaMaxMb": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "reactionNotifications": {
            "type": "string",
            "enum": [
              "off",
              "own",
              "all",
              "allowlist"
            ]
          },
          "reactionAllowlist": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "replyToMode": {
            "anyOf": [
              {
                "type": "string",
                "const": "off"
              },
              {
                "type": "string",
                "const": "first"
              },
              {
                "type": "string",
                "const": "all"
              },
              {
                "type": "string",
                "const": "batched"
              }
            ]
          },
          "replyToModeByChatType": {
            "type": "object",
            "properties": {
              "direct": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "off"
                  },
                  {
                    "type": "string",
                    "const": "first"
                  },
                  {
                    "type": "string",
                    "const": "all"
                  },
                  {
                    "type": "string",
                    "const": "batched"
                  }
                ]
              },
              "group": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "off"
                  },
                  {
                    "type": "string",
                    "const": "first"
                  },
                  {
                    "type": "string",
                    "const": "all"
                  },
                  {
                    "type": "string",
                    "const": "batched"
                  }
                ]
              },
              "channel": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "off"
                  },
                  {
                    "type": "string",
                    "const": "first"
                  },
                  {
                    "type": "string",
                    "const": "all"
                  },
                  {
                    "type": "string",
                    "const": "batched"
                  }
                ]
              }
            },
            "additionalProperties": false
          },
          "thread": {
            "type": "object",
            "properties": {
              "historyScope": {
                "type": "string",
                "enum": [
                  "thread",
                  "channel"
                ]
              },
              "inheritParent": {
                "type": "boolean"
              },
              "initialHistoryLimit": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "requireExplicitMention": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "actions": {
            "type": "object",
            "properties": {
              "reactions": {
                "type": "boolean"
              },
              "messages": {
                "type": "boolean"
              },
              "pins": {
                "type": "boolean"
              },
              "search": {
                "type": "boolean"
              },
              "permissions": {
                "type": "boolean"
              },
              "memberInfo": {
                "type": "boolean"
              },
              "channelInfo": {
                "type": "boolean"
              },
              "emojiList": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "slashCommand": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "sessionPrefix": {
                "type": "string"
              },
              "ephemeral": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "dmPolicy": {
            "type": "string",
            "enum": [
              "pairing",
              "allowlist",
              "open",
              "disabled"
            ]
          },
          "allowFrom": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "defaultTo": {
            "type": "string"
          },
          "dm": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "policy": {
                "type": "string",
                "enum": [
                  "pairing",
                  "allowlist",
                  "open",
                  "disabled"
                ]
              },
              "allowFrom": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    }
                  ]
                }
              },
              "groupEnabled": {
                "type": "boolean"
              },
              "groupChannels": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    }
                  ]
                }
              },
              "replyToMode": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "off"
                  },
                  {
                    "type": "string",
                    "const": "first"
                  },
                  {
                    "type": "string",
                    "const": "all"
                  },
                  {
                    "type": "string",
                    "const": "batched"
                  }
                ]
              }
            },
            "additionalProperties": false
          },
          "channels": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                },
                "requireMention": {
                  "type": "boolean"
                },
                "tools": {
                  "type": "object",
                  "properties": {
                    "allow": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "alsoAllow": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "deny": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "toolsBySender": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "allow": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "alsoAllow": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "deny": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "allowBots": {
                  "type": "boolean"
                },
                "users": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "skills": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "systemPrompt": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "heartbeat": {
            "type": "object",
            "properties": {
              "showOk": {
                "type": "boolean"
              },
              "showAlerts": {
                "type": "boolean"
              },
              "useIndicator": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "healthMonitor": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "responsePrefix": {
            "type": "string"
          },
          "ackReaction": {
            "type": "string"
          },
          "typingReaction": {
            "type": "string"
          },
          "accounts": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "socket",
                    "http"
                  ]
                },
                "socketMode": {
                  "type": "object",
                  "properties": {
                    "clientPingTimeout": {
                      "type": "integer",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991
                    },
                    "serverPingTimeout": {
                      "type": "integer",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991
                    },
                    "pingPongLoggingEnabled": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "signingSecret": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "env"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string",
                              "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "file"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "exec"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  ]
                },
                "webhookPath": {
                  "type": "string"
                },
                "capabilities": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "interactiveReplies": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    }
                  ]
                },
                "execApprovals": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean"
                    },
                    "approvers": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      }
                    },
                    "agentFilter": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "sessionFilter": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "target": {
                      "type": "string",
                      "enum": [
                        "dm",
                        "channel",
                        "both"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "markdown": {
                  "type": "object",
                  "properties": {
                    "tables": {
                      "type": "string",
                      "enum": [
                        "off",
                        "bullets",
                        "code",
                        "block"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "enabled": {
                  "type": "boolean"
                },
                "commands": {
                  "type": "object",
                  "properties": {
                    "native": {
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "string",
                          "const": "auto"
                        }
                      ]
                    },
                    "nativeSkills": {
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "string",
                          "const": "auto"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "configWrites": {
                  "type": "boolean"
                },
                "botToken": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "env"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string",
                              "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "file"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "exec"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  ]
                },
                "appToken": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "env"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string",
                              "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "file"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "exec"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  ]
                },
                "userToken": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "env"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string",
                              "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "file"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "exec"
                            },
                            "provider": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                            },
                            "id": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "provider",
                            "id"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  ]
                },
                "userTokenReadOnly": {
                  "default": true,
                  "type": "boolean"
                },
                "allowBots": {
                  "type": "boolean"
                },
                "dangerouslyAllowNameMatching": {
                  "type": "boolean"
                },
                "requireMention": {
                  "type": "boolean"
                },
                "groupPolicy": {
                  "type": "string",
                  "enum": [
                    "open",
                    "disabled",
                    "allowlist"
                  ]
                },
                "contextVisibility": {
                  "type": "string",
                  "enum": [
                    "all",
                    "allowlist",
                    "allowlist_quote"
                  ]
                },
                "historyLimit": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "dmHistoryLimit": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "dms": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "historyLimit": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "textChunkLimit": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "streaming": {
                  "type": "object",
                  "properties": {
                    "mode": {
                      "type": "string",
                      "enum": [
                        "off",
                        "partial",
                        "block",
                        "progress"
                      ]
                    },
                    "chunkMode": {
                      "type": "string",
                      "enum": [
                        "length",
                        "newline"
                      ]
                    },
                    "preview": {
                      "type": "object",
                      "properties": {
                        "chunk": {
                          "type": "object",
                          "properties": {
                            "minChars": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            "maxChars": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            "breakPreference": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "const": "paragraph"
                                },
                                {
                                  "type": "string",
                                  "const": "newline"
                                },
                                {
                                  "type": "string",
                                  "const": "sentence"
                                }
                              ]
                            }
                          },
                          "additionalProperties": false
                        },
                        "toolProgress": {
                          "type": "boolean"
                        },
                        "commandText": {
                          "type": "string",
                          "enum": [
                            "raw",
                            "status"
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    "progress": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "boolean",
                              "const": false
                            }
                          ]
                        },
                        "labels": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "maxLines": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        "render": {
                          "type": "string",
                          "enum": [
                            "text",
                            "rich"
                          ]
                        },
                        "toolProgress": {
                          "type": "boolean"
                        },
                        "commandText": {
                          "type": "string",
                          "enum": [
                            "raw",
                            "status"
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    "block": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        },
                        "coalesce": {
                          "type": "object",
                          "properties": {
                            "minChars": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            "maxChars": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            "idleMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    },
                    "nativeTransport": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "mediaMaxMb": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "reactionNotifications": {
                  "type": "string",
                  "enum": [
                    "off",
                    "own",
                    "all",
                    "allowlist"
                  ]
                },
                "reactionAllowlist": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "replyToMode": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "off"
                    },
                    {
                      "type": "string",
                      "const": "first"
                    },
                    {
                      "type": "string",
                      "const": "all"
                    },
                    {
                      "type": "string",
                      "const": "batched"
                    }
                  ]
                },
                "replyToModeByChatType": {
                  "type": "object",
                  "properties": {
                    "direct": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "off"
                        },
                        {
                          "type": "string",
                          "const": "first"
                        },
                        {
                          "type": "string",
                          "const": "all"
                        },
                        {
                          "type": "string",
                          "const": "batched"
                        }
                      ]
                    },
                    "group": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "off"
                        },
                        {
                          "type": "string",
                          "const": "first"
                        },
                        {
                          "type": "string",
                          "const": "all"
                        },
                        {
                          "type": "string",
                          "const": "batched"
                        }
                      ]
                    },
                    "channel": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "off"
                        },
                        {
                          "type": "string",
                          "const": "first"
                        },
                        {
                          "type": "string",
                          "const": "all"
                        },
                        {
                          "type": "string",
                          "const": "batched"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "thread": {
                  "type": "object",
                  "properties": {
                    "historyScope": {
                      "type": "string",
                      "enum": [
                        "thread",
                        "channel"
                      ]
                    },
                    "inheritParent": {
                      "type": "boolean"
                    },
                    "initialHistoryLimit": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "requireExplicitMention": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "actions": {
                  "type": "object",
                  "properties": {
                    "reactions": {
                      "type": "boolean"
                    },
                    "messages": {
                      "type": "boolean"
                    },
                    "pins": {
                      "type": "boolean"
                    },
                    "search": {
                      "type": "boolean"
                    },
                    "permissions": {
                      "type": "boolean"
                    },
                    "memberInfo": {
                      "type": "boolean"
                    },
                    "channelInfo": {
                      "type": "boolean"
                    },
                    "emojiList": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "slashCommand": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean"
                    },
                    "name": {
                      "type": "string"
                    },
                    "sessionPrefix": {
                      "type": "string"
                    },
                    "ephemeral": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "dmPolicy": {
                  "type": "string",
                  "enum": [
                    "pairing",
                    "allowlist",
                    "open",
                    "disabled"
                  ]
                },
                "allowFrom": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "defaultTo": {
                  "type": "string"
                },
                "dm": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean"
                    },
                    "policy": {
                      "type": "string",
                      "enum": [
                        "pairing",
                        "allowlist",
                        "open",
                        "disabled"
                      ]
                    },
                    "allowFrom": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      }
                    },
                    "groupEnabled": {
                      "type": "boolean"
                    },
                    "groupChannels": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      }
                    },
                    "replyToMode": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "off"
                        },
                        {
                          "type": "string",
                          "const": "first"
                        },
                        {
                          "type": "string",
                          "const": "all"
                        },
                        {
                          "type": "string",
                          "const": "batched"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "channels": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean"
                      },
                      "requireMention": {
                        "type": "boolean"
                      },
                      "tools": {
                        "type": "object",
                        "properties": {
                          "allow": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "alsoAllow": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "deny": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "additionalProperties": false
                      },
                      "toolsBySender": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {
                          "type": "object",
                          "properties": {
                            "allow": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "alsoAllow": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "deny": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "allowBots": {
                        "type": "boolean"
                      },
                      "users": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        }
                      },
                      "skills": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "systemPrompt": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "heartbeat": {
                  "type": "object",
                  "properties": {
                    "showOk": {
                      "type": "boolean"
                    },
                    "showAlerts": {
                      "type": "boolean"
                    },
                    "useIndicator": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "healthMonitor": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "responsePrefix": {
                  "type": "string"
                },
                "ackReaction": {
                  "type": "string"
                },
                "typingReaction": {
                  "type": "string"
                }
              },
              "required": [
                "userTokenReadOnly"
              ],
              "additionalProperties": false
            }
          },
          "defaultAccount": {
            "type": "string"
          }
        },
        "required": [
          "mode",
          "webhookPath",
          "userTokenReadOnly",
          "groupPolicy"
        ],
        "additionalProperties": false
      },
      "label": "Slack",
      "description": "supported (Socket Mode).",
      "uiHints": {
        "": {
          "label": "Slack",
          "help": "Slack channel provider configuration for bot/app tokens, streaming behavior, and DM policy controls. Keep token handling and thread behavior explicit to avoid noisy workspace interactions."
        },
        "dm.policy": {
          "label": "Slack DM Policy",
          "help": "Direct message access control (\"pairing\" recommended). \"open\" requires channels.slack.allowFrom=[\"*\"] (legacy: channels.slack.dm.allowFrom)."
        },
        "dmPolicy": {
          "label": "Slack DM Policy",
          "help": "Direct message access control (\"pairing\" recommended). \"open\" requires channels.slack.allowFrom=[\"*\"]."
        },
        "configWrites": {
          "label": "Slack Config Writes",
          "help": "Allow Slack to write config in response to channel events/commands (default: true)."
        },
        "commands.native": {
          "label": "Slack Native Commands",
          "help": "Override native commands for Slack (bool or \"auto\")."
        },
        "commands.nativeSkills": {
          "label": "Slack Native Skill Commands",
          "help": "Override native skill commands for Slack (bool or \"auto\")."
        },
        "allowBots": {
          "label": "Slack Allow Bot Messages",
          "help": "Allow bot-authored messages to trigger Slack replies (default: false)."
        },
        "socketMode": {
          "label": "Slack Socket Mode Transport",
          "help": "Slack Socket Mode transport tuning passed to the Slack SDK. Use only when investigating ping/pong timeout or stale websocket behavior."
        },
        "socketMode.clientPingTimeout": {
          "label": "Slack Socket Mode Pong Timeout",
          "help": "Milliseconds the Slack SDK waits for a pong after its client ping before treating the websocket as stale (OpenClaw default: 15000). Increase on hosts with event-loop starvation or slow network scheduling."
        },
        "socketMode.serverPingTimeout": {
          "label": "Slack Socket Mode Server Ping Timeout",
          "help": "Milliseconds the Slack SDK waits for Slack server pings before treating the websocket as stale."
        },
        "socketMode.pingPongLoggingEnabled": {
          "label": "Slack Socket Mode Ping/Pong Logging",
          "help": "Enable Slack SDK ping/pong transport logs while debugging Socket Mode websocket health."
        },
        "botToken": {
          "label": "Slack Bot Token",
          "help": "Slack bot token used for standard chat actions in the configured workspace. Keep this credential scoped and rotate if workspace app permissions change."
        },
        "appToken": {
          "label": "Slack App Token",
          "help": "Slack app-level token used for Socket Mode connections and event transport when enabled. Use least-privilege app scopes and store this token as a secret."
        },
        "userToken": {
          "label": "Slack User Token",
          "help": "Optional Slack user token for workflows requiring user-context API access beyond bot permissions. Use sparingly and audit scopes because this token can carry broader authority."
        },
        "userTokenReadOnly": {
          "label": "Slack User Token Read Only",
          "help": "When true, treat configured Slack user token usage as read-only helper behavior where possible. Keep enabled if you only need supplemental reads without user-context writes."
        },
        "capabilities.interactiveReplies": {
          "label": "Slack Interactive Replies",
          "help": "Enable agent-authored Slack interactive reply directives (`[[slack_buttons: ...]]`, `[[slack_select: ...]]`). Default: false."
        },
        "execApprovals": {
          "label": "Slack Exec Approvals",
          "help": "Slack-native exec approval routing and approver authorization. When unset, OpenClaw auto-enables DM-first native approvals if approvers can be resolved for this workspace account."
        },
        "execApprovals.enabled": {
          "label": "Slack Exec Approvals Enabled",
          "help": "Controls Slack native exec approvals for this account: unset or \"auto\" enables DM-first native approvals when approvers can be resolved, true forces native approvals on, and false disables them."
        },
        "execApprovals.approvers": {
          "label": "Slack Exec Approval Approvers",
          "help": "Slack user IDs allowed to approve exec requests for this workspace account. Use Slack user IDs or user targets such as `U123`, `user:U123`, or `<@U123>`. If you leave this unset, OpenClaw falls back to commands.ownerAllowFrom when possible."
        },
        "execApprovals.agentFilter": {
          "label": "Slack Exec Approval Agent Filter",
          "help": "Optional allowlist of agent IDs eligible for Slack exec approvals, for example `[\"main\", \"ops-agent\"]`. Use this to keep approval prompts scoped to the agents you actually operate from Slack."
        },
        "execApprovals.sessionFilter": {
          "label": "Slack Exec Approval Session Filter",
          "help": "Optional session-key filters matched as substring or regex-style patterns before Slack approval routing is used. Use narrow patterns so Slack approvals only appear for intended sessions."
        },
        "execApprovals.target": {
          "label": "Slack Exec Approval Target",
          "help": "Controls where Slack approval prompts are sent: \"dm\" sends to approver DMs (default), \"channel\" sends to the originating Slack chat/thread, and \"both\" sends to both. Channel delivery exposes the command text to the chat, so only use it in trusted channels."
        },
        "streaming": {
          "label": "Slack Streaming Mode",
          "help": "Unified Slack stream preview mode: \"off\" | \"partial\" | \"block\" | \"progress\". Legacy boolean/streamMode keys are auto-mapped."
        },
        "streaming.mode": {
          "label": "Slack Streaming Mode",
          "help": "Canonical Slack preview mode: \"off\" | \"partial\" | \"block\" | \"progress\"."
        },
        "streaming.chunkMode": {
          "label": "Slack Chunk Mode",
          "help": "Chunking mode for outbound Slack text delivery: \"length\" (default) or \"newline\"."
        },
        "streaming.block.enabled": {
          "label": "Slack Block Streaming Enabled",
          "help": "Enable chunked block-style Slack preview delivery when channels.slack.streaming.mode=\"block\"."
        },
        "streaming.block.coalesce": {
          "label": "Slack Block Streaming Coalesce",
          "help": "Merge streamed Slack block replies before final delivery."
        },
        "streaming.nativeTransport": {
          "label": "Slack Native Streaming",
          "help": "Enable native Slack text streaming (chat.startStream/chat.appendStream/chat.stopStream) when channels.slack.streaming.mode is partial (default: true). Native streaming and Slack assistant thread status require a reply thread target; top-level DMs can still use draft post-and-edit preview streaming."
        },
        "streaming.preview.toolProgress": {
          "label": "Slack Draft Tool Progress",
          "help": "Show tool/progress activity in the live draft preview message (default: true). Set false to hide interim tool updates while the draft preview stays active."
        },
        "streaming.preview.commandText": {
          "label": "Slack Draft Command Text",
          "help": "Command/exec detail in preview tool-progress lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
        },
        "streaming.progress.label": {
          "label": "Slack Progress Label",
          "help": "Initial progress draft title. Use \"auto\" for built-in single-word labels, a custom string, or false to hide the title."
        },
        "streaming.progress.labels": {
          "label": "Slack Progress Label Pool",
          "help": "Candidate labels for streaming.progress.label=\"auto\". Leave unset to use OpenClaw built-in progress labels."
        },
        "streaming.progress.maxLines": {
          "label": "Slack Progress Max Lines",
          "help": "Maximum number of compact progress lines to keep below the draft label (default: 8)."
        },
        "streaming.progress.render": {
          "label": "Slack Progress Renderer",
          "help": "Progress draft renderer: \"text\" uses one portable text body; \"rich\" renders structured Slack Block Kit fields with the same text fallback."
        },
        "streaming.progress.toolProgress": {
          "label": "Slack Progress Tool Lines",
          "help": "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery."
        },
        "streaming.progress.commandText": {
          "label": "Slack Progress Command Text",
          "help": "Command/exec detail in progress draft lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
        },
        "thread.historyScope": {
          "label": "Slack Thread History Scope",
          "help": "Scope for Slack thread history context (\"thread\" isolates per thread; \"channel\" reuses channel history)."
        },
        "thread.inheritParent": {
          "label": "Slack Thread Parent Inheritance",
          "help": "If true, Slack thread sessions inherit the parent channel transcript (default: false)."
        },
        "thread.initialHistoryLimit": {
          "label": "Slack Thread Initial History Limit",
          "help": "Maximum number of existing Slack thread messages to fetch when starting a new thread session (default: 20, set to 0 to disable)."
        },
        "thread.requireExplicitMention": {
          "label": "Slack Thread Require Explicit Mention",
          "help": "If true, require an explicit @mention even inside threads where the bot has participated. Suppresses implicit thread mention behavior so the bot only responds to explicit @bot mentions in threads (default: false)."
        }
      }
    }
  }
}
