Skip to content

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.

AI workspace для командных материалов и знаний