| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- /**
- * OpenClaw 聊天沟通渠道(Channels)环境变量配置
- * 选择渠道后展示对应配置项供用户填写。
- * 其中 QQ 机器人(qqbot)相关字段 `QQBOT_APP_ID` / `QQBOT_CLIENT_SECRET`、飞书(feishu)
- * 相关字段 `FEISHU_APP_ID` / `FEISHU_APP_SECRET` 为必填。
- */
- /** @typedef {{ sectionKey: string, sectionLabelKey: string, vars: Array<{ envKey: string, descriptionKey: string, defaultValue?: string, required?: boolean, advanced?: boolean }> }} OpenclawChannelSection */
- export const OPENCLAW_CHANNEL_SECTIONS = [
- {
- sectionKey: 'qqbot',
- sectionLabelKey: 'aice.openclaw.channel.qqbot',
- vars: [
- { envKey: 'QQBOT_APP_ID', descriptionKey: 'aice.openclaw.channel.env.QQBOT_APP_ID', defaultValue: '', required: true },
- { envKey: 'QQBOT_CLIENT_SECRET', descriptionKey: 'aice.openclaw.channel.env.QQBOT_CLIENT_SECRET', defaultValue: '', required: true },
- ],
- },
- {
- sectionKey: 'feishu',
- sectionLabelKey: 'aice.openclaw.channel.feishu',
- vars: [
- { envKey: 'FEISHU_APP_ID', descriptionKey: 'aice.openclaw.channel.env.FEISHU_APP_ID', defaultValue: '', required: true },
- { envKey: 'FEISHU_APP_SECRET', descriptionKey: 'aice.openclaw.channel.env.FEISHU_APP_SECRET', defaultValue: '', required: true },
- { envKey: 'FEISHU_BOT_NAME', descriptionKey: 'aice.openclaw.channel.env.FEISHU_BOT_NAME', defaultValue: '', advanced: true },
- { envKey: 'FEISHU_DOMAIN', descriptionKey: 'aice.openclaw.channel.env.FEISHU_DOMAIN', defaultValue: 'feishu' },
- { envKey: 'FEISHU_DM_POLICY', descriptionKey: 'aice.openclaw.channel.env.FEISHU_DM_POLICY', defaultValue: 'open' },
- { envKey: 'FEISHU_GROUP_POLICY', descriptionKey: 'aice.openclaw.channel.env.FEISHU_GROUP_POLICY', defaultValue: '', advanced: true },
- { envKey: 'FEISHU_ALLOW_FROM', descriptionKey: 'aice.openclaw.channel.env.FEISHU_ALLOW_FROM', defaultValue: '', advanced: true },
- { envKey: 'FEISHU_GROUP_ALLOW_FROM', descriptionKey: 'aice.openclaw.channel.env.FEISHU_GROUP_ALLOW_FROM', defaultValue: '', advanced: true },
- { envKey: 'FEISHU_TEXT_CHUNK_LIMIT', descriptionKey: 'aice.openclaw.channel.env.FEISHU_TEXT_CHUNK_LIMIT', defaultValue: '2000', advanced: true },
- { envKey: 'FEISHU_MEDIA_MAX_MB', descriptionKey: 'aice.openclaw.channel.env.FEISHU_MEDIA_MAX_MB', defaultValue: '30', advanced: true },
- { envKey: 'FEISHU_TYPING_INDICATOR', descriptionKey: 'aice.openclaw.channel.env.FEISHU_TYPING_INDICATOR', defaultValue: 'true', advanced: true },
- { envKey: 'FEISHU_RESOLVE_SENDER_NAMES', descriptionKey: 'aice.openclaw.channel.env.FEISHU_RESOLVE_SENDER_NAMES', defaultValue: 'true', advanced: true },
- ],
- },
- {
- sectionKey: 'discord',
- sectionLabelKey: 'aice.openclaw.channel.discord',
- vars: [
- { envKey: 'DISCORD_BOT_TOKEN', descriptionKey: 'aice.openclaw.channel.env.DISCORD_BOT_TOKEN', defaultValue: '', required: true },
- { envKey: 'DISCORD_DM_POLICY', descriptionKey: 'aice.openclaw.channel.env.DISCORD_DM_POLICY', defaultValue: 'open' },
- { envKey: 'DISCORD_DM_ALLOW_FROM', descriptionKey: 'aice.openclaw.channel.env.DISCORD_DM_ALLOW_FROM', defaultValue: '', advanced: true },
- { envKey: 'DISCORD_GROUP_POLICY', descriptionKey: 'aice.openclaw.channel.env.DISCORD_GROUP_POLICY', defaultValue: '', advanced: true },
- { envKey: 'DISCORD_REPLY_TO_MODE', descriptionKey: 'aice.openclaw.channel.env.DISCORD_REPLY_TO_MODE', defaultValue: 'off', advanced: true },
- { envKey: 'DISCORD_CHUNK_MODE', descriptionKey: 'aice.openclaw.channel.env.DISCORD_CHUNK_MODE', defaultValue: 'length', advanced: true },
- { envKey: 'DISCORD_TEXT_CHUNK_LIMIT', descriptionKey: 'aice.openclaw.channel.env.DISCORD_TEXT_CHUNK_LIMIT', defaultValue: '2000', advanced: true },
- { envKey: 'DISCORD_MAX_LINES_PER_MESSAGE', descriptionKey: 'aice.openclaw.channel.env.DISCORD_MAX_LINES_PER_MESSAGE', defaultValue: '17', advanced: true },
- { envKey: 'DISCORD_MEDIA_MAX_MB', descriptionKey: 'aice.openclaw.channel.env.DISCORD_MEDIA_MAX_MB', defaultValue: '8', advanced: true },
- { envKey: 'DISCORD_HISTORY_LIMIT', descriptionKey: 'aice.openclaw.channel.env.DISCORD_HISTORY_LIMIT', defaultValue: '20', advanced: true },
- { envKey: 'DISCORD_DM_HISTORY_LIMIT', descriptionKey: 'aice.openclaw.channel.env.DISCORD_DM_HISTORY_LIMIT', defaultValue: '', advanced: true },
- { envKey: 'DISCORD_REACTION_NOTIFICATIONS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_REACTION_NOTIFICATIONS', defaultValue: 'own', advanced: true },
- { envKey: 'DISCORD_ALLOW_BOTS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ALLOW_BOTS', defaultValue: 'false', advanced: true },
- { envKey: 'DISCORD_MESSAGE_PREFIX', descriptionKey: 'aice.openclaw.channel.env.DISCORD_MESSAGE_PREFIX', defaultValue: '', advanced: true },
- { envKey: 'DISCORD_ACTIONS_REACTIONS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_REACTIONS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_STICKERS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_STICKERS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_EMOJI_UPLOADS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_EMOJI_UPLOADS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_STICKER_UPLOADS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_STICKER_UPLOADS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_POLLS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_POLLS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_PERMISSIONS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_PERMISSIONS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_MESSAGES', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_MESSAGES', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_THREADS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_THREADS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_PINS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_PINS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_SEARCH', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_SEARCH', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_MEMBER_INFO', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_MEMBER_INFO', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_ROLE_INFO', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_ROLE_INFO', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_CHANNEL_INFO', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_CHANNEL_INFO', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_CHANNELS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_CHANNELS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_VOICE_STATUS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_VOICE_STATUS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_EVENTS', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_EVENTS', defaultValue: 'true', advanced: true },
- { envKey: 'DISCORD_ACTIONS_ROLES', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_ROLES', defaultValue: 'false', advanced: true },
- { envKey: 'DISCORD_ACTIONS_MODERATION', descriptionKey: 'aice.openclaw.channel.env.DISCORD_ACTIONS_MODERATION', defaultValue: 'false', advanced: true },
- ],
- },
- {
- sectionKey: 'telegram',
- sectionLabelKey: 'aice.openclaw.channel.telegram',
- vars: [
- { envKey: 'TELEGRAM_BOT_TOKEN', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_BOT_TOKEN', defaultValue: '', required: true },
- { envKey: 'TELEGRAM_DM_POLICY', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_DM_POLICY', defaultValue: 'open' },
- { envKey: 'TELEGRAM_ALLOW_FROM', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_ALLOW_FROM', defaultValue: '', advanced: true },
- { envKey: 'TELEGRAM_GROUP_POLICY', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_GROUP_POLICY', defaultValue: '', advanced: true },
- { envKey: 'TELEGRAM_GROUP_ALLOW_FROM', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_GROUP_ALLOW_FROM', defaultValue: '', advanced: true },
- { envKey: 'TELEGRAM_REPLY_TO_MODE', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_REPLY_TO_MODE', defaultValue: 'first', advanced: true },
- { envKey: 'TELEGRAM_CHUNK_MODE', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_CHUNK_MODE', defaultValue: 'length', advanced: true },
- { envKey: 'TELEGRAM_TEXT_CHUNK_LIMIT', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_TEXT_CHUNK_LIMIT', defaultValue: '4000', advanced: true },
- { envKey: 'TELEGRAM_STREAM_MODE', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_STREAM_MODE', defaultValue: 'partial', advanced: true },
- { envKey: 'TELEGRAM_LINK_PREVIEW', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_LINK_PREVIEW', defaultValue: 'true', advanced: true },
- { envKey: 'TELEGRAM_MEDIA_MAX_MB', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_MEDIA_MAX_MB', defaultValue: '5', advanced: true },
- { envKey: 'TELEGRAM_REACTION_NOTIFICATIONS', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_REACTION_NOTIFICATIONS', defaultValue: 'own', advanced: true },
- { envKey: 'TELEGRAM_REACTION_LEVEL', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_REACTION_LEVEL', defaultValue: 'minimal', advanced: true },
- { envKey: 'TELEGRAM_INLINE_BUTTONS', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_INLINE_BUTTONS', defaultValue: 'allowlist', advanced: true },
- { envKey: 'TELEGRAM_ACTIONS_REACTIONS', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_ACTIONS_REACTIONS', defaultValue: 'true', advanced: true },
- { envKey: 'TELEGRAM_ACTIONS_STICKER', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_ACTIONS_STICKER', defaultValue: 'false', advanced: true },
- { envKey: 'TELEGRAM_PROXY', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_PROXY', defaultValue: '', advanced: true },
- { envKey: 'TELEGRAM_WEBHOOK_URL', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_WEBHOOK_URL', defaultValue: '', advanced: true },
- { envKey: 'TELEGRAM_WEBHOOK_SECRET', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_WEBHOOK_SECRET', defaultValue: '', advanced: true },
- { envKey: 'TELEGRAM_WEBHOOK_PATH', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_WEBHOOK_PATH', defaultValue: '/telegram-webhook', advanced: true },
- { envKey: 'TELEGRAM_MESSAGE_PREFIX', descriptionKey: 'aice.openclaw.channel.env.TELEGRAM_MESSAGE_PREFIX', defaultValue: '', advanced: true },
- ],
- },
- // 以下渠道暂不展示,需要时取消注释即可
- // {
- // sectionKey: 'slack',
- // sectionLabelKey: 'aice.openclaw.channel.slack',
- // vars: [
- // { envKey: 'SLACK_BOT_TOKEN', descriptionKey: 'aice.openclaw.channel.env.SLACK_BOT_TOKEN', defaultValue: '' },
- // { envKey: 'SLACK_APP_TOKEN', descriptionKey: 'aice.openclaw.channel.env.SLACK_APP_TOKEN', defaultValue: '' },
- // { envKey: 'SLACK_USER_TOKEN', descriptionKey: 'aice.openclaw.channel.env.SLACK_USER_TOKEN', defaultValue: '' },
- // { envKey: 'SLACK_SIGNING_SECRET', descriptionKey: 'aice.openclaw.channel.env.SLACK_SIGNING_SECRET', defaultValue: '' },
- // { envKey: 'SLACK_MODE', descriptionKey: 'aice.openclaw.channel.env.SLACK_MODE', defaultValue: 'socket' },
- // { envKey: 'SLACK_WEBHOOK_PATH', descriptionKey: 'aice.openclaw.channel.env.SLACK_WEBHOOK_PATH', defaultValue: '/slack/events' },
- // { envKey: 'SLACK_DM_POLICY', descriptionKey: 'aice.openclaw.channel.env.SLACK_DM_POLICY', defaultValue: 'pairing' },
- // { envKey: 'SLACK_DM_ALLOW_FROM', descriptionKey: 'aice.openclaw.channel.env.SLACK_DM_ALLOW_FROM', defaultValue: '' },
- // { envKey: 'SLACK_GROUP_POLICY', descriptionKey: 'aice.openclaw.channel.env.SLACK_GROUP_POLICY', defaultValue: 'open' },
- // { envKey: 'SLACK_REPLY_TO_MODE', descriptionKey: 'aice.openclaw.channel.env.SLACK_REPLY_TO_MODE', defaultValue: 'off' },
- // { envKey: 'SLACK_REACTION_NOTIFICATIONS', descriptionKey: 'aice.openclaw.channel.env.SLACK_REACTION_NOTIFICATIONS', defaultValue: 'own' },
- // { envKey: 'SLACK_CHUNK_MODE', descriptionKey: 'aice.openclaw.channel.env.SLACK_CHUNK_MODE', defaultValue: 'newline' },
- // { envKey: 'SLACK_TEXT_CHUNK_LIMIT', descriptionKey: 'aice.openclaw.channel.env.SLACK_TEXT_CHUNK_LIMIT', defaultValue: '4000' },
- // { envKey: 'SLACK_MEDIA_MAX_MB', descriptionKey: 'aice.openclaw.channel.env.SLACK_MEDIA_MAX_MB', defaultValue: '20' },
- // { envKey: 'SLACK_HISTORY_LIMIT', descriptionKey: 'aice.openclaw.channel.env.SLACK_HISTORY_LIMIT', defaultValue: '50' },
- // { envKey: 'SLACK_ALLOW_BOTS', descriptionKey: 'aice.openclaw.channel.env.SLACK_ALLOW_BOTS', defaultValue: 'false' },
- // { envKey: 'SLACK_MESSAGE_PREFIX', descriptionKey: 'aice.openclaw.channel.env.SLACK_MESSAGE_PREFIX', defaultValue: '' },
- // { envKey: 'SLACK_ACTIONS_REACTIONS', descriptionKey: 'aice.openclaw.channel.env.SLACK_ACTIONS_REACTIONS', defaultValue: 'true' },
- // { envKey: 'SLACK_ACTIONS_MESSAGES', descriptionKey: 'aice.openclaw.channel.env.SLACK_ACTIONS_MESSAGES', defaultValue: 'true' },
- // { envKey: 'SLACK_ACTIONS_PINS', descriptionKey: 'aice.openclaw.channel.env.SLACK_ACTIONS_PINS', defaultValue: 'true' },
- // { envKey: 'SLACK_ACTIONS_MEMBER_INFO', descriptionKey: 'aice.openclaw.channel.env.SLACK_ACTIONS_MEMBER_INFO', defaultValue: 'true' },
- // { envKey: 'SLACK_ACTIONS_EMOJI_LIST', descriptionKey: 'aice.openclaw.channel.env.SLACK_ACTIONS_EMOJI_LIST', defaultValue: 'true' },
- // ],
- // },
- // {
- // sectionKey: 'whatsapp',
- // sectionLabelKey: 'aice.openclaw.channel.whatsapp',
- // vars: [
- // { envKey: 'WHATSAPP_ENABLED', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_ENABLED', defaultValue: '' },
- // { envKey: 'WHATSAPP_DM_POLICY', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_DM_POLICY', defaultValue: 'pairing' },
- // { envKey: 'WHATSAPP_ALLOW_FROM', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_ALLOW_FROM', defaultValue: '' },
- // { envKey: 'WHATSAPP_SELF_CHAT_MODE', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_SELF_CHAT_MODE', defaultValue: 'false' },
- // { envKey: 'WHATSAPP_GROUP_POLICY', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_GROUP_POLICY', defaultValue: 'allowlist' },
- // { envKey: 'WHATSAPP_GROUP_ALLOW_FROM', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_GROUP_ALLOW_FROM', defaultValue: '' },
- // { envKey: 'WHATSAPP_MEDIA_MAX_MB', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_MEDIA_MAX_MB', defaultValue: '50' },
- // { envKey: 'WHATSAPP_HISTORY_LIMIT', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_HISTORY_LIMIT', defaultValue: '50' },
- // { envKey: 'WHATSAPP_DM_HISTORY_LIMIT', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_DM_HISTORY_LIMIT', defaultValue: '' },
- // { envKey: 'WHATSAPP_SEND_READ_RECEIPTS', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_SEND_READ_RECEIPTS', defaultValue: 'true' },
- // { envKey: 'WHATSAPP_ACK_REACTION_EMOJI', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_ACK_REACTION_EMOJI', defaultValue: '' },
- // { envKey: 'WHATSAPP_ACK_REACTION_DIRECT', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_ACK_REACTION_DIRECT', defaultValue: 'true' },
- // { envKey: 'WHATSAPP_ACK_REACTION_GROUP', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_ACK_REACTION_GROUP', defaultValue: 'mentions' },
- // { envKey: 'WHATSAPP_MESSAGE_PREFIX', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_MESSAGE_PREFIX', defaultValue: '' },
- // { envKey: 'WHATSAPP_ACTIONS_REACTIONS', descriptionKey: 'aice.openclaw.channel.env.WHATSAPP_ACTIONS_REACTIONS', defaultValue: 'true' },
- // ],
- // },
- ]
- /** 渠道多选选项:仅包含有配置项的渠道 */
- export const OPENCLAW_CHANNEL_OPTIONS = OPENCLAW_CHANNEL_SECTIONS.map(s => ({
- value: s.sectionKey,
- label: s.sectionLabelKey,
- }))
|