94 lines
3.0 KiB
Markdown
94 lines
3.0 KiB
Markdown
# 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
|
||
|
||
1. Discovery — сканирование plugin directories, чтение plugin.json
|
||
2. Validation — проверка schemaVersion, apiVersion, обязательных полей
|
||
3. State check — enabled/disabled
|
||
4. Capability resolution — проверка requires/optionalRequires
|
||
5. Permissions — запрос, отображение пользователю
|
||
6. Backend sidecar — launch, если нужен
|
||
7. Frontend bundle — загрузка, если есть
|
||
8. Registration — capabilities и contributions в registry
|
||
9. 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
|
||
...
|
||
```
|