Перейти к содержанию

SDK 0.3 · формат v2 · Совместимость с SDK

Согласование ​

approval добавляет ожидание решения человека к вызову call.

Параметры ​

ПараметрНазначениеПо умолчанию
whenНужно ли согласование; может читать result вызоваtrue
quorumЧисло разных голосов, 1–1001
sourcesКаналы решенияaccount, telegram
version_fieldsКакие поля определяют версиюВсе, кроме blocked_fields
blocked_fieldsПоля занятости, запрещающие решение[]
allow_skipРазрешить пропускfalse
toggle_votesПовторное нажатие отзывает голосfalse
actionsДействия редактирования и выбора[]
recovery_actionsДействия восстановления из списка actions[]

Пример ​

YAMLСогласование результата вызова
yaml
- id: draft
  call: prepare_draft
  inputs:
    topic: "{inputs.topic}"
  approval:
    quorum: 2
    sources: [account, telegram]
    version_fields: [text, attachment]
    allow_skip: false

Результат ​

Результат call не меняет форму. Решение доступно через {state.draft.approval.status}: not_required, pending, approved, skipped.

Поведение ​

Без approval согласования нет; пустой объект включает значения по умолчанию. Пропуск продолжает путь с подготовленным результатом, но не означает одобрение. Последующее действие проверяет статус через when.

Новая версия результата сбрасывает голоса. Повторное событие не добавляет голос и не повторяет действие. Редактирование возвращает к ожиданию.

Доработка ​

Явно передаются approval.previous, approval.feedback, approval.event; начальные значения — {}, пустая строка и null. Событие содержит source, id, action, payload.

Сохранение результата перед следующей записью

Аннотация approval_checkpoint: value на data.build сохраняет полный новый результат до последующих внешних действий, под защитой ресурса. Она сохраняет правила восстановления и не заменяется частичным обновлением или скрытым вызовом кода.