5bdaea64ed
Telegram's BotCommand menu is hard-capped (100/scope, ~4KB payload; Hermes defaults to 60 slots), so most skill commands can never appear in the / menu. Inline mode has no such cap: typing @botname <query> in any chat now returns a live, searchable picker over EVERY core command, plugin command, and installed skill — results computed per keystroke, paginated 50 at a time. The Telegram analog of Discord's dynamic /skill autocomplete (#18741). - plugins/platforms/telegram/inline_picker.py: PTB-free catalog/rank/ pagination logic (unit-testable without python-telegram-bot). First query token filters; the remainder is carried into the sent command as its argument (@bot plan migrate auth → sends /plan migrate auth). - adapter: InlineQueryHandler registration (inert until the bot owner enables inline mode via BotFather /setinline) + _handle_inline_query with the same auth path as inline-button callbacks — unauthorized users get an empty list, so the installed-skill catalog is not leaked to arbitrary users (inline queries arrive from any chat). - Tap-to-send dispatches through the existing command path: the sent message starts with /, which reaches the bot even under default privacy mode. Zero new dispatch code. - Docs: telegram.md inline-picker section incl. the one-time BotFather /setinline setup.