verstak-docs/05_Official_Plugins.md

9.4 KiB
Raw Blame History

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;
  • не для конечных пользователей.

Текущий статус: используется только при разработке.