verstak-desktop/AGENTS.md

3.0 KiB
Raw Blame History

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
  ...