Термины и возможности продукта
Статус: принято 23 июля 2026 года.
Контекст
Workbench сейчас показывает устаревшие термины режимов и транспорта:
plan, read, edit, headless, native_structured, native_terminal,
one_shot и stream. Они смешивают намерение оператора, полномочия, транспорт
провайдера и представление, из-за чего интерфейс может подразумевать
неподдерживаемые сочетания.
Решение
Версия схемы 1 разделяет шесть словарей:
TaskIntent:ask,reviewилиchange;AuthorityLevel:read_onlyилиworkspace_write;TransportCapability:structured_session,terminal_session,one_shotилиstreaming_events;ToolCapability: чтение/запись файлов, процесс, сеть, GitHub, браузер, MCP или дочерний агент;TitleProvenance:untitled,legacy,fallback,provider_nativeилиmanual;IntegrationLifecycle:definition_only,enabled,disabled,uninstalledилиdefinition_deleted.
Обычный UI может запрашивать намерение задачи и уровень полномочий. Backend выбирает транспорт по исходным подтверждениям провайдера. Полномочия инструментов допускаются отдельно и не могут превышать выбранный уровень.
Допуск возвращает ровно одно состояние: available, degraded или blocked,
а также стабильные поля why, recovery и ограниченную диагностику.
Отсутствующее или неизвестное подтверждение блокируется. Понижение допустимо
только когда оно явно показано и сохраняет запрошенную границу полномочий.
Python-источник значений, manifest и правил допуска —
gigaloom.product_capabilities. UI и документация должны строиться из
его версионированного manifest, а не дублировать утверждения провайдеров.
Окно совместимости
Поля машинного API и CLI остаются читаемыми во время поэтапной миграции inventory и admission:
| Старое поле/значение | Новое соответствие | Правило |
|---|---|---|
mode=plan | ask + read_only | Временный alias; смысл планирования остаётся видимым. |
mode=read | review + read_only | Временный alias. |
mode=edit | change + workspace_write | Временный alias. |
execution_transport=native_structured | structured_session | Допуск всё ещё требует подтверждений провайдера. |
execution_transport=native_terminal | terminal_session | Только машинный override. |
execution_transport=one_shot | one_shot | Машинный override совместимости. |
invocation_mode=headless | нет соответствия | Не подтверждает транспорт; его нельзя угадывать. |
stream=true | streaming_events | Запрос совместимости, не обычный переключатель UI. |
stream=false | нет возможности | Только отказ ради совместимости. |
Неизвестное значение приводит к отказу до выполнения. Alias можно удалить
только после миграции отслеживаемых callers, сохранённого состояния, API
fixtures, документации CLI и поддерживаемых клиентов; требуется как минимум
одно опубликованное окно совместимости и явное уведомление об удалении.
plan и read остаются различимыми, пока их callers и артефакты не докажут,
что объединение безопасно. Текущие workflow receipts уже доказывают различие:
plan сохраняет артефакт планирования, а read — review_findings. При этом
оба значения проецируют read_only: смысл артефакта не расширяет полномочия.
Каждый поддерживаемый машинный alias теперь возвращает compatibility receipt
схемы v1 с намерением, полномочиями, характеристикой артефактов/router/state,
предупреждением и условием удаления. Неизвестные сохранённые значения, включая
прежнее значение Settings act, безопасно преобразуются в ask + read_only
с предупреждением legacy_mode_unmapped_read_only и никогда молча не получают
workspace-write. Самая ранняя версия удаления — 1.0.0; дополнительно требуется
одно опубликованное окно схемы v1 и отсутствие отслеживаемых callers или
сохранённого состояния. Источник истины — Python manifest и receipt, а машинный
контракт закреплён golden fixtures request/receipt.
Последствия
Реестр возможностей и пользовательский интерфейс используют единые термины из этого контракта и не вводят собственные варианты. Решение не меняет существующие машинные форматы, не переносит сессии, не выбирает маршрут провайдера, не выдаёт полномочия инструментам и не изменяет подсистему Automation. Для каждого такого изменения требуется отдельная реализация и проверка.