Add explicit chat capability tracking, expose formatted runtime capabilities
in the info command, and support a max context size option for user AI settings.
Also update Ollama base URL resolution to use OLLAMA_ADDRESS and simplify
provider chat command execution.
- add audio capability reporting for Ollama models
- support Telegram voice messages via ffmpeg conversion and Ollama transcription
- add USE_SYSTEM_PROMPT toggle and runtime reloading of .env/system prompt settings
- support ollama_options.json for custom Ollama request options
- improve Telegram MarkdownV2 escaping and formatting preservation
- add environment setters for AI provider credentials and models
- show audio capability in info/model commands
* bot will not automatically download video from youtube or load it from cache. It will fetch video info first, then suggest to download or get video from cache (with retry options)
* some rewriting in sending/editing/replying to messages
Support OLLAMA_IMAGE_MODEL and new OLLAMA_THINK_MODEL (both default to OLLAMA_MODEL)
Add /ollamathink command; validate thinking capability; disable image-analysis flow in think mode
Make /ollama-get-model show Text/Image/Think blocks only when models differ
Add /ytdl (/youtube) command + auto-detect YouTube URLs in messages
Cache downloaded videos to data/video and schedule daily cleanup
Move photo storage from data/temp to data/photo; improve env boolean parsing via ifTrue
Update deps (youtubei.js, puppeteer*) and TS config (allowJs, allowSyntheticDefaultImports)
- make MessageStore.put() return StoredMessage and allow collectReplyChainText() to work with StoredMessage
- move muted users + answers loading into Environment (add Answers model + GEMINI_IMAGE_MODEL)
- extract message handling into processNewMessage() and add media-group (album) caching/downloading by unique_file_id
- for Ollama: check model capabilities before sending images; use replyToMessage helper consistently
- add /geminiGenImage command stub for Gemini image generation