feat(plugin/telegram_bot): add Telegram bot plugin — remote Pyra chat over Telegram
Runs as a supervised daemon task (asyncio long-polling). Features: - Sender allowlist + bcrypt passphrase challenge (3 attempts before lockout) - Rate limiting: 20 messages/hour per user (in-memory, resets on restart) - Injection scanning on every incoming message (pyra.security.injection) - Full AI chat with litellm streaming → progressive Telegram message editing - Tool-use loop (up to 10 iterations) with inline-button approval (120s timeout) - Conversation history persisted per chat_id in ~/.pyra/telegram_history.db - Memory context loaded from ~/.pyra/memory/ as system prompt on first message Vault keys: plugin:telegram_bot:token, allowed_users, passphrase_hash Deps: python-telegram-bot>=21.0, bcrypt>=4.0.0 (added to telegram + all-plugins extras) 22 new unit tests covering rate limiter, history DB, plugin lifecycle, and auth state. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -28,7 +28,7 @@ dev = [
|
||||
]
|
||||
nextcloud = ["caldav>=1.3.0", "webdav4>=0.9.0", "vobject>=0.9.6"]
|
||||
matrix = ["matrix-nio>=0.24.0", "aiofiles>=23.0.0"]
|
||||
telegram = ["python-telegram-bot>=21.0"]
|
||||
telegram = ["python-telegram-bot>=21.0", "bcrypt>=4.0.0"]
|
||||
ssh = ["paramiko>=3.4.0"]
|
||||
docker = ["docker>=7.0.0"]
|
||||
gdrive = ["google-api-python-client>=2.120.0", "google-auth-oauthlib>=1.2.0"]
|
||||
@@ -38,7 +38,7 @@ daemon = ["aiofiles>=23.0.0"]
|
||||
all-plugins = [
|
||||
"caldav>=1.3.0", "webdav4>=0.9.0", "vobject>=0.9.6",
|
||||
"matrix-nio>=0.24.0", "aiofiles>=23.0.0",
|
||||
"python-telegram-bot>=21.0",
|
||||
"python-telegram-bot>=21.0", "bcrypt>=4.0.0",
|
||||
"paramiko>=3.4.0",
|
||||
"docker>=7.0.0",
|
||||
"google-api-python-client>=2.120.0", "google-auth-oauthlib>=1.2.0",
|
||||
|
||||
Reference in New Issue
Block a user