3.0 KiB
3.0 KiB
AGENTS.md — Verstak Desktop
Назначение
verstak-desktop — Core Platform + UI Shell. Это минимальное ядро, которое запускает приложение, управляет плагинами и предоставляет общий интерфейс. Core не содержит бизнес-функций пользователя.
Главные инварианты
- Core не импортирует official plugins как обязательные модули.
- Core не содержит notes/files/editor/activity/journal как внутренние фичи.
- Все пользовательские функции приходят через динамические плагины.
- Plugin Manager UI — обязательный компонент core с первого этапа.
- Capability registry и contribution registry — механизмы связи, а не жёсткие импорты.
- Плагины не могут обращаться к Wails backend методам напрямую — только через VerstakPluginAPI.
Технологии
- Backend: Go (Wails v2)
- Frontend: Svelte (plain JS, без
lang="ts") - UI Shell: окно, навигация, command palette, settings, plugin manager, dialogs/toasts
Что НЕ входит в core
- Markdown editor (это плагин)
- File manager (это плагин)
- Notes workflow (это плагин)
- Activity / journal (это плагины)
- Browser inbox (это плагин)
- Search (это плагин)
- Secrets (это плагин)
- Templates (это плагин)
Plugin Runtime
- Discovery — сканирование plugin directories, чтение plugin.json
- Validation — проверка schemaVersion, apiVersion, обязательных полей
- State check — enabled/disabled
- Capability resolution — проверка requires/optionalRequires
- Permissions — запрос, отображение пользователю
- Backend sidecar — launch, если нужен
- Frontend bundle — загрузка, если есть
- Registration — capabilities и contributions в registry
- Status — loaded / degraded / failed / incompatible / missing-required-capability
Структура репозитория
verstak-desktop/
AGENTS.md
go.mod
main.go
cmd/
internal/
core/
plugin/
discovery.go
manifest.go
state.go
lifecycle.go
capability/
registry.go
contribution/
registry.go
permissions/
registry.go
events/
bus.go
settings/
registry.go
vault/
api.go
storage/
api.go
diagnostics/
api.go
sync/
boundary.go
shell/
app/
navigation/
window/
command-palette/
plugin-manager/
ui/
settings/
dialogs/
api/
plugin.go
frontend/
src/
wails.json
...