// 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.
// архитектура · слои
  1. 01 Поверхности
    Точки входа для пользователя.
    CLI (tsx)REPL /chat /ragWeb (Next.js, 127.0.0.1)
  2. 02 core/*
    Доменная логика и агенты. Единая библиотека монолита.
    LlmClient / OllamaNativeClientrag / agents / strategy / memoryBlogDb / RagStore / TgStore / DialogDb / TodoDb
  3. 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
Витрина — Иди на факты глянь