No description
Find a file
Mikhail Putilovskij 97a3dc35ea test(01-04): add matrix space regression coverage
- add MAT-01..MAT-07 and MAT-09..MAT-12 regression tests for matrix adapter
- extend store and dispatcher coverage for pending confirmations and settings dashboard
- verify matrix adapter suite and full pytest suite stay green
2026-04-02 23:03:17 +03:00
.planning docs(01-03): complete reaction removal plan 2026-04-02 22:58:15 +03:00
adapter feat(01-03): switch Matrix confirmations to text commands 2026-04-02 22:56:16 +03:00
core feat(matrix): add adapter baseline and platform-aware command hints 2026-04-01 01:04:54 +03:00
docs docs: add known limitations for Telegram Threaded Mode 2026-04-02 17:18:03 +03:00
sdk fix(tg): QA fixes — stream_message, topic_created, archive reply 2026-04-02 14:14:19 +03:00
tests test(01-04): add matrix space regression coverage 2026-04-02 23:03:17 +03:00
.DS_Store init: surfaces-bot — Telegram & Matrix prototype 2026-03-27 00:35:42 +03:00
.env.example init: surfaces-bot — Telegram & Matrix prototype 2026-03-27 00:35:42 +03:00
.gitignore refactor: rename platform/ → sdk/ to avoid stdlib conflict 2026-03-31 21:57:23 +03:00
conftest.py feat: implement core/ and platform/ with full test coverage 2026-03-29 21:42:02 +03:00
pyproject.toml feat: implement core/ and platform/ with full test coverage 2026-03-29 21:42:02 +03:00
README.md docs: update README for current telegram and matrix workflow 2026-04-01 01:55:56 +03:00
uv.lock refactor: rename platform/ → sdk/ to avoid stdlib conflict 2026-03-31 21:57:23 +03:00

Lambda Lab 3.0 — Surfaces

Команда поверхностей. Telegram и Matrix боты для взаимодействия пользователя с AI-агентом Lambda.

Статус

Прототип в разработке. SDK платформы ещё не готов — работаем через MockPlatformClient.

Поверхность Статус Описание
Telegram 🔨 В разработке DM + Forum Topics mode, активная реализация сейчас в отдельном worktree
Matrix 🔨 В разработке Незашифрованные комнаты: новый чат = новая Matrix room

Концепция

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

Поверхности — тонкие клиенты. Вся бизнес-логика на стороне платформы. Задача команды: сделать интерфейс удобным, надёжным и легко расширяемым.


Архитектура

surfaces-bot/
  core/                  — общее ядро, не зависит от транспорта
    protocol.py          — унифицированные структуры (IncomingMessage, OutgoingUI, ...)
    handler.py           — EventDispatcher: IncomingEvent → OutgoingEvent
    handlers/            — обработчики по типам событий
    store.py             — StateStore Protocol + InMemoryStore + SQLiteStore
    chat.py              — ChatManager: метаданные чатов C1/C2/C3
    auth.py              — AuthManager: аутентификация
    settings.py          — SettingsManager: коннекторы, скиллы, SOUL, безопасность

  adapter/
    telegram/            — aiogram 3.x адаптер
    matrix/              — matrix-nio адаптер

  sdk/
    interface.py         — PlatformClient Protocol (контракт к SDK)
    mock.py              — MockPlatformClient (заглушка)

  docs/                  — документация
  .claude/agents/        — агенты для Claude Code

Ключевой принцип: добавить новую поверхность = написать один адаптер-конвертер. Ядро (core/) не трогается. Подробнее: docs/surface-protocol.md


Функционал прототипа

Telegram (подробнее)

  • Чаты — основной Telegram UX сейчас развивается в отдельном worktree feat/telegram-adapter
  • Forum Topics mode — бот умеет подключать forum-группу через /forum; чат может быть привязан к отдельной теме
  • DM-режим — базовый диалог и переключение чатов сохраняются
  • Аутентификация — привязка Telegram аккаунта к аккаунту платформы
  • Диалог — typing indicator, передача файлов, подтверждение опасных действий через inline-кнопки
  • Настройки через /settings: коннекторы (Gmail, GitHub, Notion...), скиллы, личность агента (SOUL), безопасность, подписка

Matrix (подробнее)

  • Чаты!new создаёт реальную новую Matrix room и приглашает туда пользователя
  • Онбординг — DM-first: инвайт в комнату, приветствие, затем работа через команды !
  • Диалог — сообщения, вложения, реакции 👍/ и базовый routing через EventDispatcher
  • Настройки — команды !skills, !connectors, !soul, !safety, !plan, !status, !whoami
  • Текущее ограничение — encrypted DM пока не поддержан в этом репозитории; ручное тестирование Matrix сейчас ведётся в незашифрованных комнатах

Замена SDK

Вся работа с платформой идёт через PlatformClient Protocol:

class PlatformClient(Protocol):
    async def get_or_create_user(self, external_id: str, platform: str, ...) -> User: ...
    async def send_message(self, user_id: str, chat_id: str, text: str, ...) -> MessageResponse: ...
    async def get_settings(self, user_id: str) -> UserSettings: ...
    async def update_settings(self, user_id: str, action: Any) -> None: ...

Бот не управляет lifecycle контейнеров — это делает Master (платформа). Бот передаёт user_id + chat_id + сообщение; платформа сама решает нужно ли поднять контейнер.

Сейчас: MockPlatformClient в sdk/mock.py. Когда SDK готов: добавляем SdkPlatformClient, меняем одну строку в DI. Адаптеры и ядро не трогаем.


Быстрый старт

# Зависимости
uv sync   # или: pip install -e ".[dev]"

# Тесты
pytest tests/ -v

# Запустить Matrix бота
cp .env.example .env  # заполнить MATRIX_* переменные
PYTHONPATH=. uv run python -m adapter.matrix.bot

Telegram worktree

Текущая Telegram-разработка идёт в отдельном worktree:

cd .worktrees/telegram
export BOT_TOKEN=...
PYTHONPATH=. python -m adapter.telegram.bot

Matrix manual QA

Пока Matrix-бот тестируется в незашифрованных комнатах:

cd /path/to/surfaces-bot
rm -f lambda_matrix.db
PYTHONPATH=. uv run python -m adapter.matrix.bot

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

Файл Содержание
docs/surface-protocol.md Унификация поверхностей — все структуры, как добавить новую поверхность
docs/telegram-prototype.md Функционал Telegram прототипа
docs/matrix-prototype.md Функционал Matrix прототипа
docs/api-contract.md Контракт к SDK платформы
docs/user-flow.md FSM и user journey
docs/claude-code-guide.md Гайд по работе с Claude Code

Команда

Поверхности и интеграции Lambda Lab 3.0, МАИ