Обзор расширений
Расширение — это npm-пакет с манифестом extension.manifest.mjs и entry-файлами для каждого target-а. Хост (artiroute) загружает расширения из apps/backend/data/extensions/ и инициализирует их через @artiroute/extension-sdk.
Ключевая идея
Extension point = слот реестра (registryId, key).
| Концепция | Реализация |
|---|---|
| Extension point | Пара registryId + key в Map-реестре |
| Contribution | register(key, value, order?) в setup() расширения |
| Declaration | contributes.ext.declaresRegistries в manifest |
| Extension claim | contributes.ext.extendsRegistries в manifest |
Подробнее: Концепция реестров.
Три target-а
| Target | Entry | Назначение |
|---|---|---|
backend | src/backend/index.ts | Миграции Kysely, Feathers-сервисы |
frontend | src/frontend/index.ts | UI: sidebar, routes, widgets, artifact types, UI slots |
ai | src/ai/index.ts | Типы генерации и artifact drivers для ai-agent-service |
В manifest указывается:
js
targets: {
backend: {},
frontend: {},
ai: {},
}Не все target-ы обязательны — включайте только нужные.
Lifecycle
mermaid
flowchart TD
Author["Автор: packages/extensions/name/"]
Build["pnpm build:extensions"]
Dist["dist/ + *.zip"]
Install["pnpm install:extensions"]
Data["apps/backend/data/extensions/"]
Backend["Backend: discovery, migrations, /extensions/*"]
Frontend["Frontend: dynamic import frontend/index.js"]
AI["AI service: dynamic import ai/index.js"]
Author --> Build --> Dist --> Install --> Data
Data --> Backend
Data --> Frontend
Data --> AI- Автор пишет TypeScript в
packages/extensions/<name>/ extension-build --root .собираетdist/и упаковывает.zippnpm install:extensionsраспаковывает вapps/backend/data/extensions/- Backend: discovery, миграции, Feathers, раздача статики
/extensions/* - Frontend и AI: dynamic import по manifest после bootstrap хоста
User preferences
Расширения могут участвовать в layout пользователя:
widgetLayout— вкладки и виджеты project workspacedashboardLayout— порядок и сетка виджетов дашборда (UserPreferencesv2)
Продуктовые расширения (roadmap)
Планируемые пакеты поверх Platform Core — независимые друг от друга:
| Расширение | Назначение |
|---|---|
| AI-flow | Automatic pipeline: пресет + оркестратор + research areas |
| Artifact review | Галочка «проверено» на артефакте |
| Required deliverables | Чеклист обязательных артефактов в Space (без пресетов) |
Подробнее: обзор.
Дальше
- Platform Core — роли, абилки, кастомные поля, hooks
- Быстрый старт — пошаговое создание
- Архитектура — bootstrap, hotplug, implied dependencies
- Манифест — поля manifest и
contributes.ext