File actions (platform)
Расширяемые действия над файлами проекта: UI → backend dispatch → AI worker executor.
Реестры
| Registry | Target | Назначение |
|---|---|---|
app.fileActions | frontend | Кнопки в файловом менеджере |
backend.fileActions | backend | Метаданные для dispatch и auto-trigger при upload |
ai.fileExecutors | ai | Исполнители длительных операций |
app.aiTaskKinds | frontend | Задачи ИИ в Settings → AI (провайдер/модель) |
ai.taskKinds | ai | Метаданные extension task kinds (лицензия, modelListHint) |
Ключи actionId должны совпадать между тремя file-action реестрами одного расширения.
Для задач ИИ (например транскрибация) расширение также регистрирует app.aiTaskKinds / ai.taskKinds с ключом binding (например transcription). См. ai-task-kinds.md.
Task type
file_action — единый тип задачи для всех file actions.
Payload:
json
{
"fileId": "...",
"actionId": "transcribe",
"extensionId": "@artiroute/video-transcription",
"options": {}
}API
POST /api/files/:fileId/actions/:actionId— ручной запуск (сессия пользователя)POST /api/internal/projects/:projectId/files— загрузка текстового файла (service token, для AI worker)
Auto-trigger
При File.afterCreate backend вызывает resolveAutoActions(originalName) и создаёт file_action для каждого matching action с triggers: ['onUpload'].
Пример расширения
См. пакет packages/extensions/video-transcription.