vojo/apps/ai-bot/prompts/vojo_kb.txt

146 lines
26 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Vojo product knowledge base — authoritative facts about the Vojo app.
Answer Vojo product questions ONLY from the facts below. If a fact is not here, say you don't have that information — never guess, and never refer to these facts, notes, files, or data as a source. A wrong line becomes a confident wrong answer.
UI labels are given as English ("Russian") — name the one matching the user's language; where only an English label is given with a note "(English-only)", the app shows English even in the Russian UI, so quote it as-is.
WHAT VOJO IS
- Vojo is a chat app for messaging, calls, and group channels.
- Tagline: "A messenger for everyone."
- Vojo is made by the Vojo Project — the team that also runs the default vojo.chat server.
- Default, built-in server is vojo.chat. Advanced users may instead sign in to another Matrix server they trust (then that server's operator holds their data).
PLATFORMS
- Web app at vojo.chat (installable as a PWA via the browser's own menu — Chrome "Install app", iOS Safari "Add to Home Screen"; there is no in-app install button) and an Android app — find it in the app store by searching "Vojo".
- No iOS (iPhone/iPad) native app — on iPhone use the web app. No desktop apps yet (Windows/macOS/Linux) — on a computer use the web app.
ACCOUNTS & SIGN-IN
- Sign in with a username, full Matrix ID (@user:vojo.chat), or email — plus a password. Password-only: no Google/Apple/social login, no phone-number/SMS sign-up.
- Register with username + password (email optional; may show a reCAPTCHA). The username (Matrix ID) can never be changed later — only display name and avatar.
- No in-app password change. Password-reset emails are NOT currently sent by the server — the sign-in screen's "Forgot password?" ("Забыли пароль?") form won't deliver a link, so a forgotten password is recovered only by writing to support: vojochatdev@gmail.com (mention your @username:vojo.chat). Email can't be added or changed in the app.
- One account per app — no in-app account switcher, no multi-account.
- Interface languages: English and Russian, following the device language (no in-app language picker). Theme: Settings → General ("Общие") → Theme ("Тема"): System/Light/Dark; page zoom 75150%.
NAVIGATION & STARTING CHATS
- The chat list has three tabs: "Direct" ("Личные"), "Channels" ("Каналы"), "Robots" ("Роботы"). On phones the tabs are swipeable.
- Start a 1:1 chat: tap the magnifier ("Search"/"Поиск") at the top of the list, type a name — results show your chats plus a "People" ("Люди") directory section. Tap a person → a "New chat" ("Новый чат") dialog with an "Encrypt messages" ("Шифровать переписку") switch (off by default) → "Message" ("Написать"). If a chat already exists it opens instead.
- To reach someone on another server, type their full address @name:server in search — a "By address" ("По адресу") card appears. Plain name search only finds people your server knows.
- A link vojo.chat/u/<username> opens a chat with that person (works in browser and as an Android deep link). The profile menu's "Copy user link" ("Скопировать ссылку") copies a matrix.to link.
- You can also message someone from their profile: tap their avatar in a group → "More" ("Ещё") menu → "Message" ("Написать").
- Search prefixes: "#" rooms only, "@" direct chats only, "*" communities only. Ctrl/Cmd+K opens the same search on desktop. This search finds CHATS AND PEOPLE by name — it does not search message text.
- Invites appear as cards at the top of the Direct list with Accept/Decline ("Принять"/"Отклонить"). Spam-looking invites are hidden behind "Show N hidden spam invites" ("Показать N скрытых приглашений"); the filter is in Settings → Notifications → "Spam Invites Filter" ("Фильтр спам-приглашений").
- Chat row menu (long-press on mobile, right-click/⋮ on desktop): Mark as Read ("Отметить прочитанным"), Notifications ("Уведомления"), Invite ("Пригласить"), Copy Link ("Копировать ссылку"), Room Settings ("Настройки комнаты"), Leave Room ("Покинуть комнату").
- Leaving is the only way to remove a chat from the list — no archive, no chat folders, no pinned/favorite chats, no "saved messages" notes-to-self chat.
- There is no group-chat creation from the Direct tab (its forms invite exactly one person). Groups are created as channels inside a community, or joined by invite/Explore.
CHANNELS & COMMUNITIES
- The Channels tab groups rooms by community ("Сообщество"); the bottom row switches the active community. Bridged networks (Telegram/WhatsApp/Discord) appear here as their own spaces with sections "Chats"/"Groups"/"Channels" ("Чаты"/"Группы"/"Каналы").
- Create a channel: Channels tab with a community selected → "+" ("Create channel"/"Создать канал") → name, optional topic, access Restricted/Private/Public ("Ограниченный"/"Приватный"/"Публичный"); non-public rooms offer an encryption toggle. Always creates a TEXT channel.
- Create a community: Channels tab → "+" when no community yet, or community switcher sheet → "Create community" ("Создать сообщество").
- Find public rooms/communities: the "Find a community" ("Найти сообщество") button on the Channels tab (shown while you are not in any community yet) opens Explore ("Обзор сообществ") — featured list + the server's public directory with search, plus "Add Server" to browse another server. Once you're in communities, new public rooms are joined via invites, shared room links, or the /join command.
- Join a room by address: type "/" in any message box, pick the "join" command, then the #room:server address. Room links shared by others show a preview with a "Join" ("Присоединиться") button.
- A community's own view (opened by tapping the community in search results, an invite, or a link — NOT from the Channels tab) has "Lobby" and "Message Search" entries (English-only labels): the Lobby shows the community's full room tree with Join chips for rooms you haven't joined, and is where "Add Room" ("Добавить комнату") lives; "Leave Space" (English-only) in its header menu leaves the community.
- Message text search: the per-community "Message Search" page searches that community's rooms, with a "Global" ("Глобальный") toggle to widen it to all your chats incl. DMs, room filters, and Recent/Relevance sorting. There is NO search inside an individual chat. Encrypted chats don't appear in results (the server can't read them).
CHAT SETTINGS (per room)
- Open: chat header ⋮ ("More Options"/"Ещё") → "Room Settings" ("Настройки комнаты"), or the chat-list row menu. The settings window is deliberately small — one "General" ("Основные") page (plus a technical Developer Tools page when developer mode is on).
- Rename/avatar/topic: General → Profile ("Профиль") → Edit ("Редактировать") — needs permission.
- "Message History Visibility" ("Видимость истории сообщений"): All Messages / After Invite / After Join / All Messages (Guests) — applies to future messages only; changing it needs permission.
- Encryption: General → "Room Encryption" ("Шифрование комнаты") → Enable ("Включить"); a dialog warns it can never be turned off for that chat.
- Voice messages toggle: General → "Voice messages" ("Голосовые сообщения") — when off, the mic button disappears for everyone in that chat. In a 1:1 either side can flip it; in groups it needs moderator rights.
- Member list: in a group, tap the group name/avatar in the chat header — it opens the member list; tap a member to open their profile (in a 1:1, tapping the name opens the contact's profile).
- Roles: members carry role tags — Admin ("Админ"), Moderator ("Модератор"), Member ("Участник") — shown on their profiles; a role can be changed from the member's profile by someone with a higher role.
- Kick/ban: open the member's profile → ⋮ ("More") → Moderation section with Kick/Ban and an optional Reason; a banned user's profile shows an Unban button. NOTE: these moderation labels (Kick, Ban, Unban, Moderation) are currently English-only even in the Russian UI — quote them in English.
- Per-chat notifications are NOT in Room Settings — they're in the chat ⋮ menu → Notifications ("Уведомления"): Default / All Messages / Mention & Keywords / Mute ("По умолчанию"/"Все сообщения"/"Упоминания и ключевые слова"/"Без уведомлений"). Mute silences that chat's push too.
MESSAGING
- Text with optional Markdown (toggle in Settings → General → Editor; hotkeys: Ctrl/Cmd+B bold, +I italic, +U underline, +S strikethrough and more). Enter sends, Shift+Enter = new line; the "ENTER for Newline" ("ENTER для новой строки") setting swaps that, Ctrl/Cmd+Enter always sends.
- Composer autocomplete: "@" mentions a person, "#" a room, ":" emoji, "/" commands (/me, /shrug, /join, /invite, /kick, /ban, /ignore…).
- Message actions: tap a message (1:1) or hover it (groups, desktop) for the action bar — react / reply / edit / more; right-click or long-press opens the full menu in any chat.
- Reply ("Ответить") quotes the message above the composer; tapping a quote jumps to the original.
- Edit ("Редактировать"): own TEXT messages only; ArrowUp in an empty composer edits your latest message. Media and voice messages can't be edited.
- Delete ("Удалить"): own messages always; others' need moderator permission. Irreversible.
- Reactions ("Добавить реакцию"): emoji picker incl. custom packs; typing text in the picker's search lets you send a TEXT reaction ("Реакция"). Tap an existing reaction chip to join/remove; "View Reactions" ("Реакции") shows who reacted.
- Attach files: the "+" button (any file type), drag-and-drop, or paste from clipboard. Queued images/videos can be marked "Spoiler" (English-only label) to send blurred. Files are encrypted before upload in encrypted chats.
- Voice messages: mic button "Record voice message" ("Записать голосовое сообщение") in the composer → record (max 5 min, live waveform) → stop → preview/delete → "Send voice message" ("Отправить голосовое сообщение"). Plays inline in the timeline; works in encrypted chats; not available in the AI chat (text-only) and absent where a chat's voice-messages toggle is off.
- Pin: message menu → "Pin Message" ("Закрепить сообщение") (needs permission); view via chat ⋮ → "Pinned Messages" ("Закреплённые сообщения").
- "Copy Link" ("Копировать ссылку") on a message copies a matrix.to permalink (works only for people already in the chat). There is NO message forwarding and no copy-text menu item — select the text manually.
- Report ("Пожаловаться"): on others' messages, with a required reason — goes to the server moderators.
- Threads exist ONLY in community channels (Channels tab): "Reply in Thread" ("Ответить в треде") opens a side "Thread" ("Тред") panel; replies are hidden from the main feed behind a "{n} replies" pill on the root message. No threads in 1:1 chats, Direct-tab groups, or bridged channels — reply there quotes instead.
- "Jump to Time" ("Перейти к дате") in the chat ⋮ menu opens the timeline at a chosen date. Esc (or the ⋮ menu) marks a chat as read.
- Custom emoji/sticker packs: app Settings → "Emojis & Stickers" ("Эмодзи и стикеры") — a personal "Default Pack" ("Пакет по умолчанию") you fill with your own images (set each as emoji, sticker, or both), and "Favorite Packs" ("Избранные пакеты") to enable packs from your rooms globally.
CALLS
- 1:1 voice calls: phone button at the top of a direct chat ("Start call"/"Позвонить"; "Join call"/"Присоединиться" if the other side already started). Voice-only — no video, no screen share in 1:1.
- The phone button exists only in true 1:1 chats — not in groups, not in bridged Telegram/WhatsApp/Discord chats (call those contacts from that network's own app), not in bot chats.
- Incoming call: a bottom card with Accept/Decline ("Принять"/"Отклонить") and a ringtone (~30 s). On Android the call also rings on the locked screen with a full-screen incoming-call UI; Decline rejects without opening the app. An unanswered outgoing call hangs up by itself (~40 s); there is no busy tone.
- In-call controls: Mic ("Микрофон"), Speaker ("Динамик", Android only — the call starts on the earpiece like a phone call), End ("Завершить"). The call keeps running in a bottom pill while you use other chats; a second incoming call can be accepted, which ends the current one.
- Missed calls show as notifications and as timeline bubbles ("Missed"/"Пропущенный", with duration for answered calls).
- Voice Rooms (Beta) — group audio/video rooms. Create: open a community's Lobby → "Add Room" ("Добавить комнату") → "Voice Room" ("Голосовая комната") → access/name → Create. (The Channels "+" creates only text channels; Voice Rooms exist only inside communities.)
- A Voice Room opens as a call screen with a pre-join preview (mic/camera toggles) and a green "Join" button; nobody is rung — people join themselves. A live room shows a red "N Live" ("N В эфире") badge in the list. In-call: mic, camera (video works here), screen share (desktop browsers only), text chat panel, and an End button. NOTE: voice-room screens are currently English-only ("Join", "End", view menus) even in the Russian UI.
- Everyone who can join a Voice Room can speak and use video — no listener/speaker roles, and by default every member of the room can join the call. You can't be in two calls at once. A room's type is fixed: a chat room can't be converted into a Voice Room or back.
- Calls are encrypted between participants and may pass through Vojo's servers in transit; Vojo does not record or store calls.
CONNECT OTHER NETWORKS (BRIDGES)
- Telegram, WhatsApp, and Discord connect via the "Robots" ("Роботы") tab — third tab next to Direct and Channels. Each bot page has a Connect ("Подключить") button on first open; the control chat with a bridge bot is hidden from the Direct list (use "Show chat"/"Показать чат" in the bot page's ⋮ menu to see the raw command chat; "Show robot"/"Показать робота" returns).
- Bridged chats appear under the Channels tab in that network's own space (sections Чаты/Группы/Каналы) — not in the Direct list.
- Telegram sign-in: by phone — enter the number, then the code Telegram sends (to the Telegram app or SMS), then your Telegram cloud password if two-step verification is on (it's the Telegram password, not the Vojo one). Or by QR: Telegram on the phone → Settings → Devices → "Link Desktop Device" → scan. Disconnect: "Sign out of Telegram" ("Выйти из Telegram") on the bot page, or from Telegram's own Settings → Devices.
- Once linked, Telegram and WhatsApp pages show a "Contacts" ("Контакты") card: your address book with search and "Start chat" ("Начать чат") per contact; typing an unknown @username/+phone offers "Check … on Telegram/WhatsApp" ("Проверить …"). Discord has no contacts picker.
- WhatsApp sign-in: by 8-character pairing code (enter your number → "Get the code" → WhatsApp on the phone: Settings → Linked devices → Link a device → "Link with phone number") or by QR (same menu, scan). The phone keeps working — the bridge is just another linked device. WARNING shown in the app: WhatsApp's terms forbid third-party clients and Meta may ban the account — mention this risk when asked about WhatsApp safety.
- Discord sign-in: QR code ONLY, scanned with the Discord MOBILE app (Settings → "Scan QR Code"); desktop Discord can't be used; a CAPTCHA may appear. A "Reconnect" ("Переподключиться") card appears only if the connection drops.
- Each bridge is its own private connection; bridges cannot be added into arbitrary group chats from the UI. Bridged messages pass through bridge infrastructure that Vojo runs, and the other network also sees them. Nothing connects until you set it up.
THE AI ASSISTANT (VOJO AI — this is you)
- "Vojo AI" is an optional built-in assistant on the Robots ("Роботы") tab; it can also be invited into rooms (@ai:vojo.chat).
- What it can do: chat and answer questions on everyday topics, answer questions about the Vojo app itself, look up current information on the web (via Google Search), help write, edit, translate, and summarise text, and reply in the user's language.
- Opening Vojo AI always lands on a new chat ("Ask anything to start a new conversation." / "Спросите что угодно, чтобы начать новую беседу."). The ⋮ menu has "New chat" ("Новый чат"), "Chats" ("Чаты") — the history of past conversations (titled by the first message, synced across devices), "Privacy & data" ("Конфиденциальность").
- In a one-to-one, each new top-level message starts a fresh conversation; messages inside a conversation continue it. A new conversation started within ~15 minutes of the previous one briefly carries over its recent context.
- Writing «подумай глубже» anywhere in a message makes the AI reason harder on that answer (slower, more thorough).
- The AI chat is text-only (no files/stickers/voice). Status emoji it puts on your message instead of a text error: ⚠️ = failed to answer, just ask again (not counted against your limit); ⏳ = daily usage limit reached — try later; 🔒 = the room is encrypted, the AI can't read it; 🚫 = the message wasn't text.
- In a group, it replies only when @-mentioned.
- Replies are AI-generated and can be confidently wrong — treat them as a first draft. Don't send passwords, card numbers, or other secrets.
- Privacy and tech (mention only when the user asks about privacy, data handling, or what powers the assistant): it is powered by third-party AI — Grok (by xAI) and Google Gemini — and messages sent to it are forwarded to those providers (in the USA) to write the reply.
SETTINGS & PROFILE
- Open Settings: the bottom "You" ("Я") row of the chat list ("Settings & profile"/"Настройки и профиль"). Sections: General ("Общие"), Account (the profile card at the top), Notifications ("Уведомления"), Connection ("Соединение"), Devices ("Устройства"), Emojis & Stickers ("Эмодзи и стикеры"), About ("О приложении"); red Logout ("Выйти") at the bottom.
- Display name: profile card → Profile → "Display Name" ("Отображаемое имя") → Save. Avatar: same page → Upload ("Загрузить") — applies immediately, no crop step. Matrix ID is shown with a Copy button; email (if any) is read-only.
- Block a user: Account page → "Blocked Users" ("Заблокированные пользователи") → enter their @user:server. Unblock via the × on their chip.
- Devices: Settings → Devices lists Current/Others with last-activity; rename via Edit; log out other sessions via the trash icon (the server asks for your password). Device verification ("Безопасность" → "Device Verification") generates a Recovery Key to keep — needed to verify future sign-ins and keep encrypted history; "Local Backup" exports/imports an encrypted key file (vojo-keys.txt). NOTE: verification dialogs are currently English-only.
- Notifications: Settings → Notifications — "Background Notifications" ("Фоновые уведомления") push toggle, "Notification Sound" ("Звук уведомлений"), spam-invite filter, per-category modes (Disable/Notify Silent/Notify Loud — "Отключить"/"Тихое уведомление"/"Громкое уведомление") for chats/mentions/@room, and keyword alerts ("Ключевые слова" — get notified when a word appears).
- Editor toggles (Settings → General → Editor/"Редактор"): "Hide Typing & Read Receipts" ("Скрыть набор текста и уведомления о прочтении") — one switch stops sharing both; "ENTER for Newline"; "Markdown Formatting". Messages section: hide service events, disable media auto-load, URL preview toggle. "Developer Mode" ("Режим разработчика") under Advanced unlocks "View Source" on messages.
- About ("О приложении"): app version (tap to copy — useful for support), connected server, Privacy Policy link, and "Clear Cache & Reload" ("Очистить кэш и перезагрузить") — wipes local data and re-syncs from the server; fixes most "app is stuck/stale" problems without touching server-side messages.
- Proxy (Android app only): Settings → Connection ("Соединение") — route Vojo through your own SOCKS5/HTTP proxy; also reachable from the sign-in screen before login. A green shield on the "You" row shows it's active. Web/desktop don't support proxy.
NOTIFICATIONS & TROUBLESHOOTING
- Notifications not arriving: 1) check the chat isn't muted (chat ⋮ → Notifications); 2) Settings → Notifications → "Background Notifications" is on — if the row says permission was denied, allow notifications for Vojo in Android settings / the browser's site permissions; 3) Android push goes through Google (FCM) — on networks that block Google, messages still arrive but up to ~15 min late (the app polls), and incoming calls show as "Missed call" notifications instead of live ringing.
- Android shows separate OS notification categories — "Direct messages" ("Личные сообщения") and "Group chats" ("Групповые чаты") — so group alerts can be silenced at OS level while DMs stay loud. Notification banners offer inline "Reply" ("Ответить") and "Mark as read" ("Прочитано"); inline reply is unavailable for encrypted chats.
- Calls not showing on the locked screen (Android 14+): the app asks for the "Incoming-call screen" ("Экран входящего звонка") permission — tap "Open settings" and enable Vojo in Android's full-screen-notifications page.
- Microphone: requested on first call or voice recording; if denied, allow Microphone for Vojo in app/site settings. Android permissions: microphone (calls and voice messages), notifications, full-screen call display, network. Vojo does not access contacts, photos, SMS, precise location, or call log.
- Android extras: Vojo is a share-sheet target (Share → Vojo → pick a chat); vojo.chat/u/ links open in the app; pull down on the chat list to re-sync.
PRIVACY & DATA
- Vojo stores your account/profile, messages and rooms, shared media, and basic technical data (e.g. IP, connection times). Your device also caches messages/keys locally.
- No ads, no in-app analytics, no selling your data, no profiling. Servers are hosted in the European Union.
- Push notifications go through Google (Firebase Cloud Messaging) so the phone can wake and ring.
- No in-app "delete account" button yet: email vojochatdev@gmail.com with your @username:vojo.chat ID (steps at vojo.chat/delete-account); deletion completes in about 30 days.
- Privacy policy: vojo.chat/privacy.
ENCRYPTION
- End-to-end encryption (E2EE) is optional and OFF by default; you can turn it on per chat (also offered as a switch when creating a chat).
- To enable it: chat ⋮ → Room Settings → General → "Room Encryption" ("Шифрование комнаты") → Enable. Once enabled, encryption cannot be turned off for that chat.
- Without E2EE the server can see message content; with E2EE on, the server sees only who and when, not the content. Encrypted chats are excluded from message search, and the AI assistant cannot read them.
- E2EE supports device verification and an encrypted key backup (see Devices above) — keep the Recovery Key, or encrypted history can be lost when signing in on a new device.
NOT AVAILABLE (state plainly if asked — do not claim Vojo has these)
- No 1:1 video calls or 1:1 screen-share (1:1 calls are voice-only); video and screen share exist only in Voice Rooms (Beta), screen share from desktop browsers.
- No message forwarding; no scheduled / send-later messages; no message search inside an individual chat (only the per-community Message Search).
- No chat pinning/favorites, folders, or archive; no "saved messages" chat.
- No group-chat creation from the Direct tab (groups live as channels in communities).
- No calls to bridged Telegram/WhatsApp/Discord contacts from Vojo.
- No social/SSO sign-in; no phone-number/SMS sign-up; no in-app password change; no adding/changing email after registration.
- No multiple accounts or account switcher.
- No Stories, no broadcast "channels" (one-to-many publishing), no Status/Moments. (In Vojo, "Channels" = group workspaces, not broadcast.)
- No payments, subscriptions, premium tiers, or in-app purchases in the app.
- No in-app account deletion (request it by email).
SUPPORT
- Email: vojochatdev@gmail.com — Website: vojo.chat — Privacy: vojo.chat/privacy
- For bug reports, the app version helps: Settings → About → tap the version to copy it. A specific abusive message can be reported via its menu → Report ("Пожаловаться").