// showcase · v30
Витрина возможностей
Что умеет система на день 27 — по модулям. Это функциональный обзор, а не хронология дней челленджа. Многие поверхности доступны сейчас только в CLI/REPL; web-обвязка разделов появится в следующих фазах (P1+).
// возможности
// RAG
Поиск по знаниям с цитатами и guard «не знаю».
- Single-shot query. Запрос → retrieve/filter/rerank/LLM → ответ с цитатами [n] и источниками.
- Чанки и стратегии. fixed / structure / telegram; cosine brute-force по эмбеддингам Ollama.
- RAG-чат (REPL). Сессии /chat /topic /list /alias, task-state (цель/термины/ограничения), cross-chat past-Q&A.
- Index / tg-collect. Индексация документов и форум-топиков Telegram (MTProto), фильтр по chat/topic.
- Guard «не знаю». Пустой индекс / слабый контекст → отказ без LLM-галлюцинации.
// Chat-агент
Стратегии контекста, ветвление, память и профили.
- Стратегии. FullHistory / SlidingWindow / StickyFacts / Branching — переключаются в рантайме.
- Ветвление (branching). Дерево веток диалога: создать/переключить, каждая со своей историей.
- Память 3 слоя. long-term (факты), short-term (окно), working (задача) — персистентно в .data.
- Профили. Профили пользователя; LLM-редактирование заметок, копии, сброс.
- Constraints / Usage. Явные ограничения диалога; счётчик токенов использования.
// Блог
Пайплайн новостных постов и разведка источников.
- News pipeline. RSS-новости (sports.ru/championat/bbc) → пост в стиле канала.
- Scout (3 агента). RSS / Forum / Telegram-агенты параллельно, оркестратор собирает топ.
- Pipeline FSM. Конечный автомат: idle → planning → execution → validation → revision → done.
- Posts CRUD. Список, детальный просмотр, правка, удаление; seed-style образцы стиля.
// Telegram
MTProto userbot + Bot API.
- MTProto сбор. Userbot-сессия собирает forum-топики (сообщения, авторы, реакции).
- Публикация. Посты уходят в канал через Bot API.
- Briefing. Сводки/дайджесты по расписанию.
// MCP
Model Context Protocol: свои серверы и клиенты.
- TODO + Summary. HTTP-MCP сервер с задачами и ежедневной сводкой в Telegram.
- MCP→MCP. Проксирование вызовов к удалённым серверам (Everything Server).
- Свои MCP-серверы. stdio/HTTP orchestrator, agent-loop, инструменты get_posts/todos/notes.
// Memory
Персистентное состояние в SQLite через node:sqlite.
- .data/ — единый каталог. blog/rag/tg/dialog/todos.sqlite, memory.json, profiles, MTProto-сессия.
- WAL + parameterized SQL. Множественные читатели; только ?-плейсхолдеры (SQLi-инвариант).
- cwd-независимо. core/paths.ts считает от расположения модуля — работает из CLI и из web.
// архитектура · слои
- 01 ПоверхностиТочки входа для пользователя.CLI (tsx)REPL /chat /ragWeb (Next.js, 127.0.0.1)
- 02 core/*Доменная логика и агенты. Единая библиотека монолита.LlmClient / OllamaNativeClientrag / agents / strategy / memoryBlogDb / RagStore / TgStore / DialogDb / TodoDb
- 03 ХранилищеSQLite через node:sqlite, WAL. Вне git.challenge/.data/*.sqlitememory.json, profiles, tg-session.json
// web как поверхность
// server-only chokepoint
web → web/lib/server/challenge.ts (единственный импорт @challenge/core/*) → core/. Ключи, MTProto-сессия и node:sqlite не покидают сервер.
// Локально, без deploy
next dev на 127.0.0.1. Шага production-build нет — это локальная dev-компиляция.
// стек
// Ядро (challenge)
- TypeScript (strict, ESM)
- Node.js 24
- node:sqlite (WAL)
- tsx
- gramjs (MTProto)
- fast-xml-parser
- undici
- dotenv
// Web (web)
- Next.js 15 (App Router)
- React 19
- Tailwind CSS 3
- next-themes
- zod
- server-only