К содержимому

Вход

Начать и завершить вход на платформу, посмотреть сессию, выйти и напечатать канонические ссылки на веб.

Вход

Для локальной работы аккаунт не нужен. Вход нужен для частных объектов, синхронизации, публикации, устройств на сайте и доступа.

Повседневная работа с аккаунтом — intent account. Движок drain'ит device-code login и явный sync in-process. Не набирайте auth login, если вы не восстанавливаете незавершённый device code.

ai-stp task start --intent account --idempotency-key account-session-01 --json

Следуйте continuations. Выполняйте argv только когда actor — cli. Заблокированный вопрос authorization — actor=external: покажите код один раз и остановитесь. Expert login / complete / logout ниже — для операторов, у которых уже есть незавершённый код.

CLI запускает device-code flow, печатает код, который человек должен одобрить, и сохраняет учётные данные только после этого одобрения.

link web на этой странице, потому что это круговой путь между объектом каталога и сайтом. Он не входит в аккаунт. Это чтение.

Команды

КомандаMutabilityConfirmationКогда
ai-stp task start --intent accountapplynoneповседневный вход и явный sync
auth loginapplynoneexpert: начать вход и сообщить код, который пользователь должен одобрить
auth completeapplynoneexpert: завершить ожидающий вход, когда пользователь его одобрил
auth logoutapplynoneexpert: закончить облачную сессию на сервере и здесь, сохранив все локальные данные
ai-stp auth statusreadnoneсообщить связь с платформой: только локально, authenticated, expired или revoked
ai-stp link webreadnoneнапечатать канонический веб-URL и обратимую ссылку CLI

auth login записывает незавершённую авторизацию — устойчивое состояние. auth complete сохраняет учётные данные и заново берёт владение локальными паспортами. --confirm ни на одной из них нет: решение — одобрение пользователя в браузере, и в этом весь смысл потока.

Типичный путь

ai-stp task start --intent account --idempotency-key account-session-01 --json

Следуйте continuations. Заблокированный вопрос authorization — actor=external: покажите payload один раз и остановитесь.

Expert (незавершённый device code уже есть):

Сначала нужна идентичность устройства. Затем:

ai-stp device init --json
ai-stp auth status --json
ai-stp auth login --provider github --json

--provider обязателен. Объявленные варианты — github и google.

Конверт login называет user_code, verification_uri и verification_uri_complete. Откройте URI, одобрите код, затем:

ai-stp auth complete --json
ai-stp auth status --json

auth complete не ждёт человека бесконечно. Если одобрения ещё не было, команда отказывает, и вы спрашиваете снова. Машинный вызывающий опрашивает сам. Не оборачивайте команду в цикл sleep, который игнорирует retryable.

Чтобы позже закончить сессию, сохранив локальный реестр и паспорта:

ai-stp auth logout --json
ai-stp auth status --json

Чтобы указать человеку на сайт для одного объекта каталога:

ai-stp link web --kind component --id <stable_id> --json

--kind и --id обязательны. --kind — component, setup или publisher.

Expert recovery: auth login

Начать вход и сообщить код, который пользователь должен одобрить.

ai-stp auth login --provider github --json

Результат — первая половина ответа, а не сессия. Секрет здесь непредставим. Device code, которым клиент опрашивает, лежит в секретном хранилище, а не публикуется: это носитель незавершённой авторизации.

Успешный data называет:

ПолеЧто это
providergithub или google
user_codeкод, который человек вводит или подтверждает
verification_uriстраница одобрения
verification_uri_completeта же страница с уже прикреплённым кодом
expires_inсколько живёт эта незавершённая авторизация
device_idустройство, которое будет держать сессию
browser_openedоткрыли ли браузер на рабочем столе
schema_versionmajor схемы этого отчёта

next_actions называет auth complete и auth status.

Expert recovery: auth complete

Завершить ожидающий вход, когда пользователь его одобрил.

ai-stp auth complete --json

При успехе результат — статус авторизации, а не ещё один объект одобрения устройства. Локальные паспорта, которыми владел выпущенный локальный аккаунт, переходят к аккаунту сервера ревизией.

Если человек отказал, код — AI_STP_AUTHORIZATION_DECLINED. Если незавершённая авторизация истекла, код — AI_STP_AUTHORIZATION_EXPIRED. Начните снова с auth login. Если ничего не ожидает, код — AI_STP_NOT_FOUND.

auth logout

Закончить облачную сессию на сервере и здесь, сохранив все локальные данные.

ai-stp auth logout --json

Logout — не device reset. Идентичность устройства остаётся. Кэшированные байты каталога остаются. Паспорта остаются. Сессия заканчивается. После этого auth status сообщает local_only.

auth status

Сообщить связь с платформой: только локально, authenticated, expired или revoked.

ai-stp auth status --json

Это чтение. Оно не создаёт идентичность и сессию.

Успешный data называет:

ПолеЧто это
statelocal_only, authenticated, expired или revoked
account_idаккаунт, когда он есть, иначе null
expires_atкогда сессия истекает, или null
credential_storeгде хранится секрет сессии, или null
schema_versionmajor схемы этого отчёта

local_only — обычное состояние машины, которая никогда не входила. Это не ошибка. Поиск в каталоге всё ещё работает. device init всё ещё работает.

expired значит, что учётные данные были здесь и больше не действительны. revoked значит, что аккаунт больше не доверяет этому устройству. Ни то ни другое не чинится повтором auth complete без нового login.

Напечатать канонический веб-URL и обратимую ссылку CLI.

ai-stp link web --kind component --id <stable_id> --json

Это чтение. Оно не открывает браузер, не входит в аккаунт и не загружает объект. Оно проецирует одну идентичность в URL сайта и в команду CLI, которая называет тот же объект.

Успешный data называет:

ПолеЧто это
web_urlканонический URL сайта
cli_commandвызов CLI, который называет ту же цель
cli_argvтот же вызов списком аргументов
targetkind, stable_id и необязательные version, locale, intent

--kind — component, setup или publisher. id издателя — account_…. Необязательные флаги версии, локали и действия жалобы есть в machine help; они не обязательны, поэтому сюда не скопированы.

Что содержит успешный конверт

auth login возвращает поля одобрения устройства выше. auth complete, auth logout и auth status возвращают поля статуса авторизации выше. link web возвращает поля deep-link выше.

Каждый конверт также несёт ok, warnings, next_actions, request_id, operation_id и schema_version.

Чего эти команды никогда не делают

  • не печатают refresh token, access token и незавершённый device code;
  • не удаляют локальные паспорта, реестр и кэшированные байты при logout;
  • не создают идентичность устройства (это device init);
  • не ждут без границы, пока человек дойдёт до браузера;
  • не пишут target harness;
  • не считают URL сайта разрешением установить.

Типичные отказы

Что видноЧто это значитЧто делать
AI_STP_VALIDATION_ERROR на auth loginнет --provider или это не github/googletask start --intent account --idempotency-key account-session-01 --json
AI_STP_NOT_FOUND на auth completeничего не ожидаетtask start --intent account --idempotency-key account-session-01 --json
AI_STP_AUTHORIZATION_DECLINEDчеловек отказал в браузереостановиться или снова стартовать account, если хотели одобрить
AI_STP_AUTHORIZATION_EXPIREDнезавершённый код истёкtask start --intent account --idempotency-key account-session-01 --json
state равен expiredсессия больше не действительнаtask start --intent account --idempotency-key account-session-01 --json
state равен revokedаккаунт больше не доверяет этому устройствуновый account start; device reset — отдельное destructive решение
AI_STP_VALIDATION_ERROR на link webнет --kind или --id, или они неверныпередать обе обязательные опции
AI_STP_AUTH_REQUIRED на поздней облачной командесессии нетtask start --intent account --idempotency-key account-session-01 --json

Связанные страницы

СтраницаЗачем
Устройствоидентичность, которая держит сессию
Паспортапередача владения при первом входе
Синхронизациячастный поток аккаунта после входа
Вход на сайтето же одобрение в браузере
Аккаунт на сайтеаккаунт, которому принадлежит сессия
Реестранонимное чтение каталога не требует входа
Доступдоступ к major-линии после входа
Быстрый старт для человекачто можно делать до аккаунта

!!! note "Флаги из ai-stp help --agent --json" Если help --agent расходится с флагом на этой странице, прав CLI. Необязательные флаги здесь не перечислены. Читайте их из дескриптора. auth login требует --provider. link web требует --kind и --id.