3.4 KiB
3.4 KiB
memo
Локальная библиотека заметок с семантическим поиском.
Markdown на диске — истина, .db рядом — пересобираемый кэш. Агент (или человек) пишет и
читает обычные .md-файлы своими штатными средствами: memo не требует ни специального API записи,
ни изменения привычек. Он следит за файловой системой, держит рядом с каждой папкой-темой
индекс (SQLite + sqlite-vec + FTS5) и отвечает на смысловые вопросы гибридным поиском
(BM25 + вектор + RRF).
Статус
Проектирование завершено. Код не написан.
| Документ | Что внутри |
|---|---|
docs/SPEC.md |
полная спека: модель данных, индекс, маршрутизация, watcher, интерфейс, приёмка |
TASK.md |
ТЗ для исполнителя (opencode): стек, схема БД, контракты, чего не делать |
TESTING.md |
тест-план: 6 приёмочных проверок, команды, признаки провала |
Идея
- Коллекций (папок-тем) — сколько угодно; они не мешают друг другу.
- Индекс каждой коллекции живёт в её
.memo/index.dbи удаляется без потерь — пересобирается. - Поиск — обычный read-only инструмент; записи в markdown он не делает никогда.
- Только локально: эмбеддинг на CPU, сеть не нужна ни при индексации, ни при поиске.
Состав (JVM-first, один Gradle-проект)
memo-cli # memo index|search|status — ручные проверки и приёмка без агента
memo-core # чанкер по заголовкам, sqlite-схема, инкрементальная переиндексация, гибридный поиск
memo-watch # демон: WatchService + debounce + реконсиляция по mtime
memo-mcp # MCP-сервер (stdio): memo_search / memo_status / memo_reindex
memo-core не знает ни про watcher, ни про MCP — это драйверы поверх ядра.
Зависимости (проверено 02.10.2026)
| Что | Координата | Откуда |
|---|---|---|
| SQLite + sqlite-vec + FTS5 | pw.binom.db:ksqlite:0.1.4 |
Maven Central |
| Текстовый эмбеддинг (SigLIP2 int8, 768 dims) | pw.binom.ai.embeddingtext:api:5 + :siglip:5 |
http://nexus.xx/repository/caffeine/ |
Модель (в артефакты не входит, скачивается отдельно):
mkdir -p models/siglip2
curl -fSL -o models/siglip2/text_model_int8.onnx http://static.binom.pw/models/siglip2/text_model_int8.onnx # 283M
curl -fSL -o models/siglip2/tokenizer.model http://static.binom.pw/models/siglip2/tokenizer.model # 4.2M
Требования
JDK 21. Индекс и поиск работают офлайн после скачивания модели.
Лицензия
Apache-2.0.