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
8.8 KiB
JSON
121 lines
8.8 KiB
JSON
{
|
|
"channel.appSecret": "앱 비밀키",
|
|
"channel.appSecretHint": "봇 애플리케이션의 App Secret입니다. 암호화되어 안전하게 저장됩니다.",
|
|
"channel.appSecretPlaceholder": "여기에 앱 비밀키를 붙여넣으세요",
|
|
"channel.applicationId": "애플리케이션 ID / 봇 사용자 이름",
|
|
"channel.applicationIdHint": "봇 애플리케이션의 고유 식별자입니다.",
|
|
"channel.applicationIdPlaceholder": "예: 1234567890",
|
|
"channel.botToken": "봇 토큰 / API 키",
|
|
"channel.botTokenEncryptedHint": "토큰은 암호화되어 안전하게 저장됩니다.",
|
|
"channel.botTokenHowToGet": "어떻게 얻나요?",
|
|
"channel.botTokenPlaceholderExisting": "보안을 위해 토큰이 숨겨져 있습니다",
|
|
"channel.botTokenPlaceholderNew": "여기에 봇 토큰을 붙여넣으세요",
|
|
"channel.charLimit": "문자 제한",
|
|
"channel.charLimitHint": "메시지당 최대 문자 수",
|
|
"channel.concurrency": "동시성 모드",
|
|
"channel.concurrencyDebounce": "디바운스",
|
|
"channel.concurrencyHint": "큐는 메시지를 한 번에 하나씩 처리하며, 디바운스는 메시지 폭주가 끝난 후 처리합니다.",
|
|
"channel.concurrencyQueue": "큐",
|
|
"channel.connectFailed": "봇 연결 실패",
|
|
"channel.connectQueued": "봇 연결이 대기 중입니다. 곧 시작됩니다.",
|
|
"channel.connectStarting": "봇이 시작 중입니다. 잠시만 기다려 주세요.",
|
|
"channel.connectSuccess": "봇 연결 성공",
|
|
"channel.connecting": "연결 중...",
|
|
"channel.connectionConfig": "연결 구성",
|
|
"channel.copied": "클립보드에 복사됨",
|
|
"channel.copy": "복사",
|
|
"channel.credentials": "자격 증명",
|
|
"channel.debounceMs": "메시지 병합 대기 시간 (ms)",
|
|
"channel.debounceMsHint": "에이전트에게 전달하기 전에 추가 메시지를 기다리는 시간 (ms)",
|
|
"channel.deleteAllChannels": "모든 채널 제거",
|
|
"channel.deleteAllConfirm": "모든 채널을 제거하시겠습니까?",
|
|
"channel.deleteAllConfirmDesc": "이 작업은 이 에이전트의 모든 메시지 채널과 해당 구성을 영구적으로 제거합니다. 이 작업은 되돌릴 수 없습니다.",
|
|
"channel.deleteAllFailed": "모든 채널 제거 실패",
|
|
"channel.deleteAllSuccess": "모든 채널이 제거되었습니다",
|
|
"channel.deleteConfirm": "이 채널을 제거하시겠습니까?",
|
|
"channel.deleteConfirmDesc": "이 작업은 메시지 채널과 해당 설정을 영구적으로 제거합니다. 되돌릴 수 없습니다.",
|
|
"channel.devWebhookProxyUrl": "HTTPS 터널 URL",
|
|
"channel.devWebhookProxyUrlHint": "선택 사항. 로컬 개발 서버로 웹훅 요청을 전달하기 위한 HTTPS 터널 URL입니다.",
|
|
"channel.disabled": "비활성화됨",
|
|
"channel.discord.description": "이 어시스턴트를 Discord 서버에 연결하여 채널 채팅 및 직접 메시지를 사용할 수 있습니다.",
|
|
"channel.dm": "직접 메시지",
|
|
"channel.dmEnabled": "DM 활성화",
|
|
"channel.dmEnabledHint": "봇이 직접 메시지를 받고 응답할 수 있도록 허용",
|
|
"channel.dmPolicy": "DM 정책",
|
|
"channel.dmPolicyAllowlist": "허용 목록",
|
|
"channel.dmPolicyDisabled": "비활성화됨",
|
|
"channel.dmPolicyHint": "봇에게 직접 메시지를 보낼 수 있는 대상을 제어",
|
|
"channel.dmPolicyOpen": "열림",
|
|
"channel.documentation": "문서",
|
|
"channel.enabled": "활성화됨",
|
|
"channel.encryptKey": "암호화 키",
|
|
"channel.encryptKeyHint": "선택 사항. 암호화된 이벤트 페이로드를 해독하는 데 사용됩니다.",
|
|
"channel.encryptKeyPlaceholder": "선택적 암호화 키",
|
|
"channel.endpointUrl": "웹훅 URL",
|
|
"channel.endpointUrlHint": "이 URL을 복사하여 {{name}} 개발자 포털의 <bold>{{fieldName}}</bold> 필드에 붙여넣으세요.",
|
|
"channel.exportConfig": "구성 내보내기",
|
|
"channel.feishu.description": "이 어시스턴트를 Feishu에 연결하여 개인 및 그룹 채팅을 사용할 수 있습니다.",
|
|
"channel.historyLimit": "히스토리 메시지 제한",
|
|
"channel.historyLimitHint": "채널 히스토리를 읽을 때 기본적으로 가져올 메시지 수",
|
|
"channel.importConfig": "구성 가져오기",
|
|
"channel.importFailed": "구성 가져오기에 실패했습니다",
|
|
"channel.importInvalidFormat": "잘못된 구성 파일 형식",
|
|
"channel.importSuccess": "구성이 성공적으로 가져와졌습니다",
|
|
"channel.lark.description": "이 어시스턴트를 Lark에 연결하여 개인 및 그룹 채팅을 사용할 수 있습니다.",
|
|
"channel.openPlatform": "오픈 플랫폼",
|
|
"channel.platforms": "플랫폼",
|
|
"channel.publicKey": "공개 키",
|
|
"channel.publicKeyHint": "선택 사항. Discord의 상호작용 요청을 검증하는 데 사용됩니다.",
|
|
"channel.publicKeyPlaceholder": "상호작용 검증에 필요",
|
|
"channel.qq.appIdHint": "QQ 오픈 플랫폼에서 제공된 QQ 봇 앱 ID를 입력하세요.",
|
|
"channel.qq.description": "이 어시스턴트를 QQ에 연결하여 그룹 채팅 및 직접 메시지를 이용하세요.",
|
|
"channel.removeChannel": "채널 제거",
|
|
"channel.removeFailed": "채널 제거 실패",
|
|
"channel.removed": "채널이 제거되었습니다",
|
|
"channel.runtimeDisconnected": "봇이 연결이 끊어졌습니다",
|
|
"channel.save": "구성 저장",
|
|
"channel.saveFailed": "구성 저장 실패",
|
|
"channel.saveFirstWarning": "먼저 구성을 저장하세요",
|
|
"channel.saved": "구성이 성공적으로 저장되었습니다",
|
|
"channel.secretToken": "웹훅 비밀 토큰",
|
|
"channel.secretTokenHint": "선택 사항. Telegram의 웹훅 요청을 검증하는 데 사용됩니다.",
|
|
"channel.secretTokenPlaceholder": "웹훅 검증을 위한 선택적 비밀",
|
|
"channel.serverId": "기본 서버 / 길드 ID",
|
|
"channel.serverIdHint": "이 플랫폼에서 기본 서버 또는 길드 ID입니다. AI는 이를 사용하여 채널을 묻지 않고 나열합니다.",
|
|
"channel.settings": "고급 설정",
|
|
"channel.settingsResetConfirm": "고급 설정을 기본값으로 재설정하시겠습니까?",
|
|
"channel.settingsResetDefault": "기본값으로 재설정",
|
|
"channel.setupGuide": "설치 가이드",
|
|
"channel.showUsageStats": "사용 통계 표시",
|
|
"channel.showUsageStatsHint": "봇 응답에서 토큰 사용량, 비용 및 소요 시간 통계를 표시",
|
|
"channel.signingSecret": "서명 비밀키",
|
|
"channel.signingSecretHint": "웹훅 요청을 검증하는 데 사용됩니다.",
|
|
"channel.slack.appIdHint": "Slack API 대시보드에서 제공된 Slack App ID (A로 시작).",
|
|
"channel.slack.description": "이 어시스턴트를 Slack에 연결하여 채널 대화 및 직접 메시지를 지원합니다.",
|
|
"channel.telegram.description": "이 어시스턴트를 Telegram에 연결하여 개인 및 그룹 채팅을 사용할 수 있습니다.",
|
|
"channel.testConnection": "연결 테스트",
|
|
"channel.testFailed": "연결 테스트 실패",
|
|
"channel.testSuccess": "연결 테스트 성공",
|
|
"channel.updateFailed": "상태 업데이트 실패",
|
|
"channel.userId": "플랫폼 사용자 ID",
|
|
"channel.userIdHint": "이 플랫폼에서의 사용자 ID입니다. AI는 이를 사용하여 직접 메시지를 보낼 수 있습니다.",
|
|
"channel.validationError": "애플리케이션 ID와 토큰을 입력하세요",
|
|
"channel.verificationToken": "검증 토큰",
|
|
"channel.verificationTokenHint": "선택 사항. 웹훅 이벤트 소스를 검증하는 데 사용됩니다.",
|
|
"channel.verificationTokenPlaceholder": "여기에 검증 토큰을 붙여넣으세요",
|
|
"channel.wechat.description": "iLink Bot을 통해 이 어시스턴트를 WeChat에 연결하여 개인 및 그룹 채팅을 지원합니다.",
|
|
"channel.wechatBotId": "봇 ID",
|
|
"channel.wechatBotIdHint": "QR 코드 인증 후 할당된 봇 식별자입니다.",
|
|
"channel.wechatConnectedInfo": "연결된 WeChat 계정",
|
|
"channel.wechatManagedCredentials": "이 채널은 이미 QR 코드 인증을 통해 연결되었습니다. 자격 증명은 자동으로 관리됩니다.",
|
|
"channel.wechatQrExpired": "QR 코드가 만료되었습니다. 새로 고침하여 새 코드를 받으세요.",
|
|
"channel.wechatQrRefresh": "QR 코드 새로 고침",
|
|
"channel.wechatQrScaned": "QR 코드가 스캔되었습니다. WeChat에서 로그인을 확인하세요.",
|
|
"channel.wechatQrWait": "WeChat을 열고 QR 코드를 스캔하여 연결하세요.",
|
|
"channel.wechatRebind": "QR 코드로 다시 연결",
|
|
"channel.wechatScanTitle": "WeChat 봇 연결",
|
|
"channel.wechatScanToConnect": "QR 코드를 스캔하여 연결",
|
|
"channel.wechatTips": "WeChat을 최신 버전으로 업데이트하고 다시 시작하세요. ClawBot 플러그인은 점진적으로 배포되고 있으니 설정 > 플러그인에서 액세스를 확인하세요.",
|
|
"channel.wechatUserId": "WeChat 사용자 ID",
|
|
"channel.wechatUserIdHint": "인증 흐름에서 반환된 WeChat 계정 식별자입니다."
|
|
}
|