ДокументацияСтраницы

Работа с командой

Страницы

Описывает Piomio 0.2.15Изменить страницу

Иногда ответ удобнее смотреть страницей, а не сообщением: прогулка с остановками на карте, план поездки, сравнение, чек-лист, отчёт. Такую страницу может сделать любой агент команды. Она приходит карточкой в чат и открывается на весь экран прямо в Piomio — на компьютере и на телефоне.

Как попросить страницу

Просто скажи, что хочешь увидеть:

  • «Сделай страницу для прогулки в субботу: маршрут по старому городу, места с ценами и погода».
  • «Сравни на одной странице три квартиры, которые мы смотрели».
  • «Сделай чек-лист вещей в поездку».

Агенты делают страницу и сами, когда в ответе много структуры или картинок. В сообщении агент говорит, что на странице, а под ним карточка: картинка, название, строка-другая и Открыть.

Что может быть на странице

Страница — маленькое веб-приложение, которое агент пишет на React поверх набора, встроенного в Piomio. В наборе есть:

  • Вёрстка и элементы: карточки, вкладки, раскрывающиеся блоки, таблицы, бейджи, кнопки, ползунки, переключатели, галочки, диалоги, карусели, полосы прогресса и иконки (компоненты shadcn/ui и иконки Lucide), стили на Tailwind.
  • Карта с нумерованными точками и маршрутом по настоящим дорогам и тропинкам — пешком, на машине или на велосипеде, с расстоянием и временем. Выбор места в списке может переводить карту к нему. Карты — OpenStreetMap.
  • Погода: живой прогноз для места, до 7 дней вперёд, от Open-Meteo.
  • Карточки мест: фото, чем место хорошо, адрес, часы работы, цена, рейтинг и метки, а ещё кнопки:
    • Маршрут открывает дорогу в Apple Картах на устройствах Apple и в Google Картах на остальных.
    • Сайт открывает сайт места.
    • Спросить отправляет агенту «Расскажи подробнее про …».
  • Картинки и видео: шапка с фото, галерея, цифры с подписью. Видео с YouTube и Vimeo открываются вне страницы.
  • Живые данные нескольких бесплатных сервисов: Open-Meteo (погода, качество воздуха, море), Frankfurter (курсы валют), Википедия, Wikimedia и Wikidata.
  • То, что остаётся отмеченным: галочки в чек-листе или выбор на странице сохраняются на твоём хабе и остаются на месте, кто бы и когда страницу ни открыл.

Страница светлая или тёмная, как приложение, а её собственные слова (прогноз, «Маршрут», экран ошибки) — на языке хаба. Отдельного блока для графиков в наборе нет: числа агент показывает таблицами, крупными цифрами и полосами прогресса.

Как открыть страницу

Нажми на карточку. Страница закроет чат; в полосе сверху — её название и кнопка закрытия (Escape тоже работает).

Внутри страницы:

  • Ссылки открываются снаружи: в твоём браузере, а на телефоне — в системном.
  • Кнопки, которые обращаются к агенту (например, Спросить у места), закрывают страницу и отправляют эти слова в чат от твоего имени — разговор продолжается оттуда.
  • Если страница сломалась, она показывает «Страница не открылась», текст ошибки и кнопку Попросить исправить. Хаб ещё и сохраняет ошибку для агента, так что он видит, что пошло не так в твоём браузере.

Страницы открываются везде, где есть чат: в приложении для компьютера, в браузере, по ссылке, которая ведёт к хабу откуда угодно (см. Доступ откуда угодно), и в приложении для iPhone, где страница занимает весь экран. В Telegram приходят слова агента, а сама страница — нет: открой карточку в приложении.

Чтобы вернуться к странице позже, попроси: «покажи ещё раз страницу с прогулкой». Агент снова положит её карточку в чат.

Как поменять страницу

Попроси в том же чате: «добавь кофейню после музея», «сделай карту побольше», «переведи цены в евро». Агент поменяет код страницы или только её данные, а открытая страница сама перезагрузится с новой версией.

Факты обычно лежат в данных страницы, поэтому мелкие правки быстрые: агент может заменить список мест или цены, не трогая вёрстку.

Страницу может обновлять и задача по расписанию — например, утренняя сводка, которая обновляется каждый день (см. Задачи, расписания и «Входящие»). Удалить страницу из приложения или из чата пока нельзя.

Где хранятся страницы

Каждая страница — папка в папке данных хаба:

pages/<id страницы>/page.tsx    код, который написал агент
pages/<id страницы>/page.js     тот же код, собранный для браузера
pages/<id страницы>/data.json   факты, которые показывает страница

Название, строка и картинка для карточки, автор, версия и то, что ты отметил на странице, хранятся в базе хаба. Ограничения на одну страницу: 200 КБ кода, 1 МБ данных и 256 КБ сохранённых галочек и выборов.

Куда странице можно ходить, а куда нет

Страница агента работает в песочнице. Хаб отдаёт её по отдельному адресу с секретной частью, и браузер считает её чужой для Piomio:

  • Она не видит твою сессию в Piomio, не может обращаться к API Piomio и не видит чаты, память и хранилище.
  • Она загружает только то, что даёт ей хаб: набор, свои данные, картинки (хаб скачивает их за неё), тайлы карты, маршруты по дорогам и JSON от сервисов из списка выше. С другими сайтами она связаться не может, поэтому всё найденное агент кладёт в данные страницы.
  • Ей недоступны камера, микрофон и геопозиция; она не встраивает чужие сайты и никуда не отправляет формы.
  • Когда хаб собирает код, он отказывает во всём, что страница пытается подключить сверх набора.

Кнопки «поделиться страницей» или «открыть в отдельной вкладке» нет: страницы открываются внутри Piomio.

Что ещё почитать