AI task kinds registry
Extensions can register custom AI agent tasks (provider + model bindings) via app.aiTaskKinds (frontend) and ai.taskKinds (AI service).
Core tasks remain built-in: chat, generation, embedding.
Manifest
js
extendsRegistries: [
{ registryId: 'app.aiTaskKinds', keys: ['transcription'] },
{ registryId: 'ai.taskKinds', keys: ['transcription'] },
],Frontend registration
ts
import { getExtensionRegistry, type ExtensionAiTaskKindItem } from '@artiroute/extension-sdk/extension';
getExtensionRegistry<ExtensionAiTaskKindItem>('app.aiTaskKinds').register('transcription', {
key: 'transcription',
label: 'Транскрипция',
description: 'Распознавание речи в аудио и видео',
extensionId: '@artiroute/video-transcription',
order: 40,
modelListHint: 'transcription',
licenseFeature: 'ai.transcription',
});The task appears in Settings → AI → Tasks when the extension is installed.
AI service registration
Register the same key in ai.taskKinds so the worker can resolve license metadata. Use @artiroute/host/ai-providers in the extension AI target:
ts
import { resolveForTask, getOpenAiCompatibleCredentials, providerExtraHeaders } from '@artiroute/host/ai-providers';
const resolved = await resolveForTask('transcription');Bindings are stored in InstanceSettings.aiBindings JSON under the task key (e.g. transcription).
Reference: packages/extensions/video-transcription.