mirror of
https://github.com/lobehub/lobehub
synced 2026-04-21 09:37:28 +00:00
* ✨ feat: add cross-platform message tool for AI bot channel operations Implement a unified message tool (`lobe-message`) that provides AI with messaging capabilities across Discord, Telegram, Slack, Google Chat, and IRC through a single interface with platform-specific extensions. Core APIs: sendMessage, readMessages, editMessage, deleteMessage, searchMessages, reactToMessage, getReactions, pin/unpin management, channel/member info, thread operations, and polls. Architecture follows the established builtin-tool pattern: - Package: @lobechat/builtin-tool-message (manifest, types, executor, ExecutionRuntime, client components) - Registry: registered in builtin-tools (renders, inspectors, interventions, streamings) - Server runtime: stub service ready for platform adapter integration https://claude.ai/code/session_011sHc6R7V4cSYKere9RY1QM * feat: implement platform specific message service * chore: add wechat platform * chore: update wechat api service * chore: update protocol implementation * chore: optimize platform api test * fix: lark domain error * feat: support bot message cli * chore: refactor adapter to service * chore: optimize bot status fetch * fix: bot status * fix: channel nav ignore * feat: message tool support bot manage * feat: add lobe-message runtime * feat: support direct message * feat: add history limit * chore: update const limit * feat: optimize server id message history limit * chore: optimize system role & inject platform environment info * chore: update readMessages vibe * fix: form body width 50% * chore: optimize tool prompt * chore: update i18n files * chore: optimize read message system role and update bot message lh * updage readMessage api rate limit * chore: comatible for readMessages * fix: feishu readMessage implementation error * fix: test case * chore: update i18n files * fix: lint error * chore: add timeout for conversaction case * fix: message test case * fix: vite gzip error --------- Co-authored-by: Claude <noreply@anthropic.com>
121 lines
7.8 KiB
JSON
121 lines
7.8 KiB
JSON
{
|
|
"channel.appSecret": "App Secret",
|
|
"channel.appSecretHint": "The App Secret of your bot application. It will be encrypted and stored securely.",
|
|
"channel.appSecretPlaceholder": "Paste your app secret here",
|
|
"channel.applicationId": "Application ID / Bot Username",
|
|
"channel.applicationIdHint": "Unique identifier for your bot application.",
|
|
"channel.applicationIdPlaceholder": "e.g. 1234567890",
|
|
"channel.botToken": "Bot Token / API Key",
|
|
"channel.botTokenEncryptedHint": "Token will be encrypted and stored securely.",
|
|
"channel.botTokenHowToGet": "How to get?",
|
|
"channel.botTokenPlaceholderExisting": "Token is hidden for security",
|
|
"channel.botTokenPlaceholderNew": "Paste your bot token here",
|
|
"channel.charLimit": "Character Limit",
|
|
"channel.charLimitHint": "Maximum number of characters per message",
|
|
"channel.concurrency": "Concurrency Mode",
|
|
"channel.concurrencyDebounce": "Debounce",
|
|
"channel.concurrencyHint": "Queue processes messages one at a time; Debounce waits for a burst of messages to finish before processing",
|
|
"channel.concurrencyQueue": "Queue",
|
|
"channel.connectFailed": "Bot connection failed",
|
|
"channel.connectQueued": "Bot connection queued. It will start shortly.",
|
|
"channel.connectStarting": "Bot is starting. Please wait a moment.",
|
|
"channel.connectSuccess": "Bot connected successfully",
|
|
"channel.connecting": "Connecting...",
|
|
"channel.connectionConfig": "Connection Configuration",
|
|
"channel.copied": "Copied to clipboard",
|
|
"channel.copy": "Copy",
|
|
"channel.credentials": "Credentials",
|
|
"channel.debounceMs": "Debounce Window (ms)",
|
|
"channel.debounceMsHint": "How long to wait for additional messages before dispatching to the agent (ms)",
|
|
"channel.deleteAllChannels": "Remove All Channels",
|
|
"channel.deleteAllConfirm": "Are you sure you want to remove all channels?",
|
|
"channel.deleteAllConfirmDesc": "This action will permanently remove all message channels and their configurations for this agent. This cannot be undone.",
|
|
"channel.deleteAllFailed": "Failed to remove all channels",
|
|
"channel.deleteAllSuccess": "All channels removed",
|
|
"channel.deleteConfirm": "Are you sure you want to remove this channel?",
|
|
"channel.deleteConfirmDesc": "This action will permanently remove this message channel and its configuration. This cannot be undone.",
|
|
"channel.devWebhookProxyUrl": "HTTPS Tunnel URL",
|
|
"channel.devWebhookProxyUrlHint": "Optional. HTTPS tunnel URL for forwarding webhook requests to local dev server.",
|
|
"channel.disabled": "Disabled",
|
|
"channel.discord.description": "Connect this assistant to Discord server for channel chat and direct messages.",
|
|
"channel.dm": "Direct Messages",
|
|
"channel.dmEnabled": "Enable DMs",
|
|
"channel.dmEnabledHint": "Allow the bot to receive and respond to direct messages",
|
|
"channel.dmPolicy": "DM Policy",
|
|
"channel.dmPolicyAllowlist": "Allowlist",
|
|
"channel.dmPolicyDisabled": "Disabled",
|
|
"channel.dmPolicyHint": "Control who can send direct messages to the bot",
|
|
"channel.dmPolicyOpen": "Open",
|
|
"channel.documentation": "Documentation",
|
|
"channel.enabled": "Enabled",
|
|
"channel.encryptKey": "Encrypt Key",
|
|
"channel.encryptKeyHint": "Optional. Used to decrypt encrypted event payloads.",
|
|
"channel.encryptKeyPlaceholder": "Optional encryption key",
|
|
"channel.endpointUrl": "Webhook URL",
|
|
"channel.endpointUrlHint": "Please copy this URL and paste it into the <bold>{{fieldName}}</bold> field in the {{name}} Developer Portal.",
|
|
"channel.exportConfig": "Export Configuration",
|
|
"channel.feishu.description": "Connect this assistant to Feishu for private and group chats.",
|
|
"channel.historyLimit": "History Message Limit",
|
|
"channel.historyLimitHint": "Default number of messages to fetch when reading channel history",
|
|
"channel.importConfig": "Import Configuration",
|
|
"channel.importFailed": "Failed to import configuration",
|
|
"channel.importInvalidFormat": "Invalid configuration file format",
|
|
"channel.importSuccess": "Configuration imported successfully",
|
|
"channel.lark.description": "Connect this assistant to Lark for private and group chats.",
|
|
"channel.openPlatform": "Open Platform",
|
|
"channel.platforms": "Platforms",
|
|
"channel.publicKey": "Public Key",
|
|
"channel.publicKeyHint": "Optional. Used to verify interaction requests from Discord.",
|
|
"channel.publicKeyPlaceholder": "Required for interaction verification",
|
|
"channel.qq.appIdHint": "Your QQ Bot App ID from QQ Open Platform",
|
|
"channel.qq.description": "Connect this assistant to QQ for group chats and direct messages.",
|
|
"channel.removeChannel": "Remove Channel",
|
|
"channel.removeFailed": "Failed to remove channel",
|
|
"channel.removed": "Channel removed",
|
|
"channel.runtimeDisconnected": "Bot disconnected",
|
|
"channel.save": "Save Configuration",
|
|
"channel.saveFailed": "Failed to save configuration",
|
|
"channel.saveFirstWarning": "Please save configuration first",
|
|
"channel.saved": "Configuration saved successfully",
|
|
"channel.secretToken": "Webhook Secret Token",
|
|
"channel.secretTokenHint": "Optional. Used to verify webhook requests from Telegram.",
|
|
"channel.secretTokenPlaceholder": "Optional secret for webhook verification",
|
|
"channel.serverId": "Default Server / Guild ID",
|
|
"channel.serverIdHint": "Your default server or guild ID on this platform. The AI uses it to list channels without asking.",
|
|
"channel.settings": "Advanced Settings",
|
|
"channel.settingsResetConfirm": "Are you sure you want to reset advanced settings to default?",
|
|
"channel.settingsResetDefault": "Reset to Default",
|
|
"channel.setupGuide": "Setup Guide",
|
|
"channel.showUsageStats": "Show Usage Stats",
|
|
"channel.showUsageStatsHint": "Show token usage, cost, and duration stats in bot replies",
|
|
"channel.signingSecret": "Signing Secret",
|
|
"channel.signingSecretHint": "Used to verify webhook requests.",
|
|
"channel.slack.appIdHint": "Your Slack App ID from the Slack API dashboard (starts with A).",
|
|
"channel.slack.description": "Connect this assistant to Slack for channel conversations and direct messages.",
|
|
"channel.telegram.description": "Connect this assistant to Telegram for private and group chats.",
|
|
"channel.testConnection": "Test Connection",
|
|
"channel.testFailed": "Connection test failed",
|
|
"channel.testSuccess": "Connection test passed",
|
|
"channel.updateFailed": "Failed to update status",
|
|
"channel.userId": "Your Platform User ID",
|
|
"channel.userIdHint": "Your user ID on this platform. The AI can use it to send you direct messages.",
|
|
"channel.validationError": "Please fill in Application ID and Token",
|
|
"channel.verificationToken": "Verification Token",
|
|
"channel.verificationTokenHint": "Optional. Used to verify webhook event source.",
|
|
"channel.verificationTokenPlaceholder": "Paste your verification token here",
|
|
"channel.wechat.description": "Connect this assistant to WeChat via iLink Bot for private and group chats.",
|
|
"channel.wechatBotId": "Bot ID",
|
|
"channel.wechatBotIdHint": "Bot identifier assigned after QR code authorization.",
|
|
"channel.wechatConnectedInfo": "Connected WeChat Account",
|
|
"channel.wechatManagedCredentials": "This channel is already connected through QR code authorization. Credentials are managed automatically.",
|
|
"channel.wechatQrExpired": "QR code expired. Please refresh to get a new one.",
|
|
"channel.wechatQrRefresh": "Refresh QR Code",
|
|
"channel.wechatQrScaned": "QR code scanned. Please confirm the login in WeChat.",
|
|
"channel.wechatQrWait": "Open WeChat and scan the QR code to connect.",
|
|
"channel.wechatRebind": "Rebind via QR Code",
|
|
"channel.wechatScanTitle": "Connect WeChat Bot",
|
|
"channel.wechatScanToConnect": "Scan QR Code to Connect",
|
|
"channel.wechatTips": "Please update WeChat to the latest version and restart it. The ClawBot plugin is in gradual rollout, so check Settings > Plugins to confirm access.",
|
|
"channel.wechatUserId": "WeChat User ID",
|
|
"channel.wechatUserIdHint": "WeChat account identifier returned by the authorization flow."
|
|
}
|