9.4 KiB
Official Plugins
Официальные плагины — базовый набор инструментов Верстака. Они используют тот же plugin runtime, что и сторонние. Их задача — показать, что платформа работает через capabilities и contribution points.
Все официальные плагины используют префикс verstak.* в id.
1. verstak.files
Назначение:
- дерево/список файлов внутри дела;
- добавление файлов и папок;
- перемещение/переименование;
- открытие через Workbench (openProvider routing);
- trash/restore (через
verstak.trash); - file metadata.
Provides:
workspace.files
vault.files
entity.file
file.browser
Optional requires:
editor.text
viewer.file
preview.file
search.provider
Текущий статус: реализован. Открывает файлы через api.workbench.openResource(),
не импортирует редактор напрямую. Корзина выделена в отдельный плагин verstak.trash.
2. verstak.notes
Назначение:
- markdown notes как UI-слой над обычными
.mdфайлами; - каноническая папка
Notes/внутри дела; Overview.md— обычное markdown-имя файла, не специальная UI-сущность;- note metadata;
- rename с синхронизацией title/filename;
- conflict dialog при конфликте имён.
Provides:
workspace.notes
note.registry
Requires:
verstak/core/files/v1
Optional requires:
editor.text.markdown
search.provider
Текущий статус: реализован. Title и filename синхронизированы. При конфликте имени показывается conflict dialog.
3. verstak.default-editor
Назначение:
- редактирование текста и markdown;
- toolbar;
- save flow;
- dirty state;
- markdown preview (встроен, не отдельный плагин);
- keyboard shortcuts (Ctrl+S).
Provides:
editor.text
editor.text.markdown
editor.note.markdown
Optional requires:
link.resolver
Текущий статус: реализован как единый плагин с тремя openProviders
(text, generic-markdown, notes-markdown). Использует api.files.readText /
api.files.writeText. Markdown preview — часть редактора, без отдельного
плагина предпросмотра.
4. verstak.file-preview
Назначение:
- inline preview для изображений через
api.files.readBytes; - metadata view;
Open Externalчерезapi.files.openExternal.
Provides:
viewer.file
viewer.image
preview.file
Текущий статус: базовый рендеринг изображений через публичный Files API, плюс metadata файла. Текстовые файлы, код и markdown остаются за editor-плагинами.
5. verstak.activity
Назначение:
- сбор activity events;
- отображение истории активности;
- реконструкция работы;
- worklog suggestions для Journal.
Provides:
activity.log
activity.provider
activity.reconstruction
Subscribes:
file.opened
file.changed
note.saved
action.started
browser.capture.received
case.selected
Текущий статус: реализован как глобальный sidebar view и workspace item.
Workspace tabs хранят свою activity stream; глобальный view агрегирует все
workspace streams. Предоставляет activityProviders; desktop runtime записывает
события в plugin storage даже когда Activity view не смонтирован. Реконструирует
worklog suggestions через контракт verstak.activity.suggestWorklog.
6. verstak.journal
Назначение:
- ручной журнал работ;
- billable/non-billable;
- приём suggested time из activity;
- создание записи из завершённого todo.
Provides:
worklog
journal
report.worklog
Optional requires:
activity.reconstruction
Текущий статус: реализован как глобальный sidebar view и workspace item.
Хранит записи в plugin settings namespace, импортирует не-billable записи
из verstak.activity.suggestWorklog, дедуплицирует по Activity suggestion id.
7. verstak.browser-inbox
Назначение:
- приём страниц, ссылок, выделенного текста и файлов из browser extension;
- pending queue с scoping по workspace;
- domain bindings;
- конвертация inbox entry в note/link/file;
- запись конвертаций в Activity.
Provides:
capture.browser
browser.inbox
domain.binding
Requires:
network.local
Optional requires:
workspace.notes
activity.log
search.provider
Текущий статус: реализован как глобальный sidebar view и workspace item.
Local receiver в paired mode с токеном. Поддерживает конвертацию в note
(через публичный Files API), link (.url файлы), text file attachments
и bounded binary attachments. Конвертации записываются в Activity.
8. verstak.search
Назначение:
- workspace-scoped search;
- поиск по мере ввода;
- поиск по именам файлов/папок и содержимому текстовых файлов;
- persistent search index;
- cross-provider runtime hosting.
Provides:
search
search.provider
search.indexer
Текущий статус: реализован как workspace item и searchProviders contribution.
Ищет по мере ввода, индексирует vault, обновляет индекс по файловым событиям,
поддерживает других search providers через runtime.
9. verstak.secrets
Назначение:
- защищённое хранилище доступов;
- workspace-scoped secrets;
- master password (AES-GCM).
Provides:
secret-store
secrets.read-ui
secrets.write-ui
Текущий статус: реализован. Desktop core имеет AES-GCM secret store,
разблокируемый один раз за сессию. Плагин показывает global и workspace-scoped
секреты, поддерживает редактирование, удаление, копирование markdown secret links.
Рендерит verstak-secret://... ссылки.
10. verstak.todo
Назначение:
- списки задач внутри дел и глобально;
- статусы: open, done, cancelled;
- приоритеты, due date, reminders;
- создание Journal записи из завершённого todo.
Provides:
workspace.todo
Текущий статус: реализован. Reminders с нативными desktop-уведомлениями
(при наличии capability verstak/core/notifications/v1). Поддерживает
создание Journal записи из todo с копированием фактических данных.
11. verstak.trash
Назначение:
- глобальный просмотр удалённых файлов;
- восстановление из корзины;
- перманентное удаление.
Provides:
trash.management
Текущий статус: реализован как глобальный sidebar view. Работает
с internal trash storage (.verstak/trash/files/).
12. verstak.sync
Назначение:
- ручная синхронизация vault;
- отображение статуса и конфликтов;
- настройки подключения к sync server.
Provides:
sync.ui
Requires:
network.remote
Текущий статус: реализован как глобальный sidebar view и settings panel. Показывает vaultId, статус, unpushed count, ошибки и конфликты. Не делает auto-resolve конфликтов.
13. verstak.templates
Назначение:
- шаблоны дел при создании;
- предопределённые наборы workspace tools;
- one-time применение (шаблон не привязан к делу после создания).
Provides:
case.templates
Текущий статус: реализован через built-in templates в desktop core (General, Project, Writing, Admin, Minimal). Модальное окно создания дела показывает описание шаблона и его вкладки.
14. verstak.platform-test
Назначение:
- тестовый плагин для отладки runtime;
- диагностические панели для проверки API;
- не для конечных пользователей.
Текущий статус: используется только при разработке.