Манифест и API
yttri-plugin.json — единственный декларативный контракт плагина. Он
валидируется до установки и перед каждым запуском; любая неоднозначность
приводит к отказу.
Минимальный манифест
Заголовок раздела «Минимальный манифест»{ "manifestVersion": "1", "id": "acme.my-plugin", "name": "My Plugin", "version": "0.1.0", "sdkVersion": "^1.0.0", "yttriVersion": ">=0.80.0", "runtime": { "kind": "js_ts_v1", "entry": "dist/index.js" }, "permissions": [ { "domain": "secrets", "access": "write", "reason": "Хранить API-токен" }, { "domain": "network", "access": "read", "hosts": ["api.acme.com"], "reason": "Обращаться к API сервиса" } ], "capabilities": { "tools": [ { "name": "acme_ping", "description": "Проверить сервис.", "sideEffect": "read_only", "requiredCapability": "network" } ] }}Разрешения
Заголовок раздела «Разрешения»domain— один из capability-доменов: notes, tasks, projects, mail, calendar, contacts, documents, recordings, meetings, finance, search, integrations, accounts, editor, ui, mcp, agent, background, notifications, secrets или network. Неизвестный домен отклоняет весь манифест.access: read | write— по умолчанию read; write включает read.hostsобязателен для network: хосты указываются без схемы и пути, поддерживается wildcard, например*.acme.io.reasonпоказывается пользователю при установке, поэтому формулируйте его понятным языком.
Возможности (capabilities)
Заголовок раздела «Возможности (capabilities)»tools— инструменты AI-агента:name,description,sideEffect(read_only | mutating | external) иrequiredCapability.jobs— ручные фоновые задачи или scheduled-задачи с cron-расписанием.settings— схема настроек (string | number | boolean | select). Yttri генерирует форму, значения доступны черезhost.settings.getAll(). Токены храните только черезhost.secrets, а не в settings.
Что исполняется сегодня
Заголовок раздела «Что исполняется сегодня»Система работает fail-closed, поэтому честный статус важен. Сегодня третьесторонние плагины могут исполнять домены notes, tasks, search, calendar, contacts и projects (чтение и создание), documents, mail и meetings (только чтение), а также secrets и network через хелперы.
Остальные домены манифест принимает, но вызовы в них пока вернут «операция не реализована». Собственный UI и коннекторы аккаунтов третьей стороне пока недоступны.