Stripe Link Cli
Платежи агента через Stripe Link — карты, SPT, одобрения.
Метаданные навыка
| Источник | Опционально — установка через vibeos skills install official/payments/stripe-link-cli |
| Путь | optional-skills/payments/stripe-link-cli |
| Версия | 0.1.0 |
| Автор | Teknium (teknium1), VibeOS |
| Лицензия | MIT |
| Платформы | linux, macos |
| Теги | Payments, Stripe, Link, Checkout, MPP |
| Связанные навыки | mpp-agent, stripe-projects |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое VibeOS загружает при его активации. Это инструкции, которые видит агент, когда навык активен.
Навык Stripe Link CLI
Обёртка для @stripe/link-cli, позволяющая VibeOS совершать покупки от имени пользователя с помощью одноразовых виртуальных карт или токенов совместных платежей (Shared Payment Tokens, SPT). Каждая трата блокируется одобрением в приложении Link (мобильном/веб) — VibeOS не может одобрять самостоятельно.
На данный момент только для США (требуется учётная запись Link). Windows не поддерживается upstream CLI — навык ограничен [linux, macos].
Когда использовать
Фразы-триггеры:
- «купи X», «заплати за X», «соверши покупку», «заверши оформление заказа»
- «дай мне карту», «мне нужен способ оплаты»
- «войди в Link», «подключи мой кошелёк Link»
- HTTP-ответ 402 от API мерчанта с
www-authenticate: ... method="stripe"
Если пользователю нужен платный вызов API (HTTP 402, без формы оформления заказа), путь с card не подходит — используйте SPT через этот же навык или передайте управление навыку mpp-agent.
Предварительные требования
- Node.js 20+ доступен в
PATH(node --version) - Нахождение в США (требуется учётная запись Link)
Учётная запись Link, способ оплаты и приложение для одобрения трат НЕ обязательно настраивать до того, как VibeOS попытается оплатить — CLI проведёт пользователя через них при первом запуске:
- Учётная запись Link на https://app.link.com — создаётся/привязывается во время первой аутентификации
link-cli - Как минимум один способ оплаты — добавляется при первом запуске на https://app.link.com/wallet
- Мобильное/веб-приложение Link — открывается для одобрения первого запроса на трату, когда он поступит
Переменные окружения не требуются — состояние аутентификации хранится локально CLI в его собственном каталоге конфигурации.
Установка
Установите один раз глобально:
npm install -g @stripe/link-cli
Или вызывайте ad-hoc через npx @stripe/link-cli. Навык ниже использует форму установленного link-cli.
Как запускать
Все команды выполняются через инструмент terminal. CLI автоматически определяет вызовы не из TTY и по умолчанию выводит компактный вывод toon — этого достаточно для модели. Если шагу нужны структурированные поля, передавайте --format json.
Обнаружение команд: link-cli --llms-full.
Получение схемы команды перед вызовом: link-cli <команда> --schema.
Процедура
1. Проверка / установка аутентификации
link-cli auth status
Если аутентификация не выполнена, войдите с понятным именем клиента (эта метка отображается в приложении Link пользователя):
link-cli auth login --client-name "VibeOS" --interval 5 --timeout 300
Форма с --interval/--timeout выполняет опрос встроенно, поэтому агенту не нужно управлять шагом _next. Выведите пользователю URL верификации и фразу и ждите возврата от CLI.
Не переходите к следующему шагу, пока auth status не подтвердит вход.
2. Оценка мерчанта перед созданием запроса на трату
Определите тип учётных данных:
| Поверхность мерчанта | --credential-type |
|---|---|
| Стандартная веб-форма оформления заказа / Stripe Elements | card (по умолчанию) |
Возвращает HTTP 402 с method="stripe" в www-authenticate | shared_payment_token |
Возвращает HTTP 402 без method="stripe" | не поддерживается — остановитесь |
Для ответов 402 НЕ декодируйте challenge вручную. Передайте сырой заголовок:
link-cli mpp decode --challenge '<полный заголовок WWW-Authenticate>'
Это проверяет challenge и извлекает ID сети и декодированное тело запроса.
3. Список способов оплаты и адресов доставки
link-cli payment-methods list
link-cli shipping-address list
Используйте первую запись, если пользователь не указал иное. id из payment-methods list — это --payment-method-id на следующем шаге.
4. Создание запроса на трату
Подтвердите итоговую сумму с пользователем перед выполнением этой команды. Суммы указываются в центах.
link-cli spend-request create \
--payment-method-id <pm_id> \
--merchant-name "<имя>" \
--merchant-url "<url>" \
--context "<одно предложение: что покупается и зачем>" \
--amount <центы> \
--line-item "name:<товар>,unit_amount:<центы>,quantity:1" \
--total "type:total,display_text:Итого,amount:<центы>" \
--request-approval
Для мерчантов MPP добавьте --credential-type shared_payment_token.
--request-approval отправляет пинг в приложение Link пользователя и опрашивает, пока он не одобрит или не отклонит. CLI завершается с ненулевым кодом при отклонении / тайм-ауте.
5. Получение учётных данных — БЕЗОПАСНО
Не выводите данные карты в stdout. Используйте --output-file, чтобы PAN никогда не попал в транскрипт или логи агента:
link-cli spend-request retrieve <lsrq_id> \
--include card \
--output-file /tmp/link-card.json \
--format json
Файл записывается с правами 0600; stdout показывает только скрытые поля (бренд, последние 4 цифры, срок действия) плюс путь card_output_file.
6. Использование учётных данных
-
Для веб-оформления заказа: передайте путь к файлу пользователю ИЛИ передайте его инструменту управления браузером, который заполнит форму непосредственно с диска. Никогда не используйте
read_fileилиcatдля файла карты в контексте рассуждений агента. -
Для мерчантов MPP:
link-cli mpp pay <url-мерчанта> \
--spend-request-id <lsrq_id> \
--method POST \
--data '<json тело>'
7. Очистка
Удалите файл карты сразу после завершения покупки:
rm -f /tmp/link-card.json
Опционально: запуск в качестве MCP-сервера
@stripe/link-cli --mcp предоставляет те же команды в виде MCP-инструментов через stdio. Чтобы зарегистрировать его в родном MCP VibeOS:
vibeos mcp add stripe-link --command "npx" --args "@stripe/link-cli --mcp"
Затем vibeos mcp list должен показать stripe-link. Применяются те же правила одобрения — MCP не обходит шаг одобрения в приложении Link.
Подводные камни
- Только для США. За пределами США
auth loginзавершится ошибкой. Сообщите пользователю, не повторяйте попытки. - PAN карты никогда не должен попадать в контекст агента. Всегда используйте
--output-file. Если вы уже получили данные без него, немедленногоlink-cli auth logoutнедостаточно — карта одноразовая, но гигиена ротации важна. --request-approvalблокируется до действия пользователя. Если пользователь спит, CLI достигнет тайм-аута. Установите ожидания.- Многошаговые команды
_next. Некоторые команды возвращают_next.command, который необходимо выполнить для продолжения. Если сомневаетесь, предпочитайте флаги встроенного опроса (--interval/--timeout). - Формат вывода по умолчанию —
toonв режиме не-TTY. Подходит для текста, но если последующему шагу нужно разобрать конкретное поле, передавайте--format json. - Не выбирайте
cardпо умолчанию. Шаг оценки мерчанта (Раздел 2) существует, потому что выбор неправильного типа учётных данных приводит к молчаливому сбою покупки или утечке большего объёма данных, чем необходимо.
Проверка
link-cli --version && link-cli auth status
Код возврата 0 означает, что установка выполнена и выполнен вход.