Commit Graph

172 Commits

Author SHA1 Message Date
github-actions[bot] d8ba5927d1 Version Packages (#252)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@stripe/link-cli@0.13.1
2026-08-17 16:32:45 -04:00
shirleyz-stripe 138fa87ddc Clarify payment method confirmation in SKILL.md (#245)
Updated step 3 to clarify payment method confirmation process and adjusted related instructions. Agent no longer needs to list out payment methods and input into spend request; should make the buying process faster
2026-08-17 13:37:19 -04:00
Dan Hill b1640b208d Updates the published limits to $500 (#251)
* fix: correct limits

* fix: correct limits

* add changeset
2026-08-17 13:34:41 -04:00
github-actions[bot] d540389e03 Version Packages (#247)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@stripe/link-cli@0.13.0
2026-08-13 14:36:54 -04:00
Selina Feng 70453ff2d0 Add changelog entry for financial insights command and skill file changes (#249) 2026-08-13 14:26:11 -04:00
sylwang-stripe 9dc8c650e8 Handle spend request requires_action state across create/retrieve/approval flows (#248) 2026-08-13 14:16:21 -04:00
kreese-stripe 1675a70648 feat: Handle duplicate spend request rate limit response (#246)
* Handle duplicate spend request rate limit response

* Some formatting improvements

* CI

* Changest
2026-08-13 12:47:35 -04:00
github-actions[bot] 69c2089b00 Version Packages (#241)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@stripe/link-cli@0.12.0
2026-08-12 09:59:30 -04:00
Selina Feng c3e70e1225 Expose financial insights CLI commands and skill file (#240) 2026-08-12 09:57:19 -04:00
kreese-stripe e9a8f69b74 security: Sanitize output of decodeStripeChallenge call (#244)
* security improvements for mpp commands

* rm comment

* Add changeset
2026-08-12 08:39:23 -04:00
nvp-stripe 9103637d63 Bind Link Pay Tokens to the checkout merchant (#243)
* lpt merchant binding

* readme updates

* approve link_pay_token
2026-08-11 15:22:10 -04:00
Steve Kaliski f05d954e0f add patch changeset (#239) 2026-08-11 09:42:55 -04:00
Steve Kaliski 9612d71d97 update npm deps (#238)
* update npm deps

* fix ci
2026-08-10 14:04:29 -04:00
dependabot[bot] 20a964f912 chore(deps): bump ip-address from 10.2.0 to 10.3.1 (#226)
Bumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.2.0 to 10.3.1.
- [Release notes](https://github.com/beaugunderson/ip-address/releases)
- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.3.1)

---
updated-dependencies:
- dependency-name: ip-address
  dependency-version: 10.3.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-10 13:06:32 -04:00
Selina Feng 5ab1f96ca3 Update table styling for balances and sources commands (#228)
* update table styling for balances and sources commands

* test

* fix: rename Account name column to Source name for consistency

Committed-By-Agent: claude
2026-08-07 13:37:08 -04:00
jlau-stripe b3493d202b fix: prevent [object Object] in API error messages across all resources (#234)
- Handle nested `{ error: { message } }` error shape in auth resources
  (both CLI and SDK implementations) by replacing the cast-only
  `err?.error` interpolation with `extractOAuthErrorMessage`, which
  does a runtime typeof check before descending into the object
- Fix `switch (err.error)` in `pollDeviceAuth` to switch on
  `extractOAuthErrorCode(err)` so polling continues correctly when a
  non-string error arrives (object would never match a string case)
- Fix `error_description` truthy guard to a nullish check so an empty
  string from the server is preserved rather than falling back to the
  error code
- Replace inline cast-only error extraction in payment-methods,
  shipping-address, user-info, and web-bot-auth resources with
  `extractErrorMessage` from base.ts, which already handles both
  string and nested-object error shapes
- Replace `String(err)` in `useAsyncAction` with `JSON.stringify(err)`
  so thrown plain objects produce readable output instead of
  [object Object]
- Add tests covering all of the above


Committed-By-Agent: claude

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-07 10:11:42 -04:00
dknudsen-stripe b3b37731ee feat: add auth upgrade command to widen access to a superset (#229)
Committed-By-Agent: claude
2026-08-06 12:39:11 -07:00
sylwang-stripe f89efad09e open verification URL in browser on spend request step-up failure (#227) 2026-08-06 10:27:40 -04:00
kreese-stripe 06587fa405 Surface card_brand and card_last4 on spend-request retrieve (#225)
The link-api PR (mint#2412595, LINK_AI_WALLET-365) added top-level
`card_brand` and `card_last4` to the RetrieveSpendRequest response so
integrators can identify a card for debugging without expanding the full
`card` object via `include=card`.

Add both fields to the SDK `SpendRequest` type and display them in the
interactive `retrieve` view when the full card is not expanded. The SDK
already passed these through to `--format json` output via its
pass-through cast; this closes the typing and interactive-display gap.

Docs (README, SKILL.md, CLAUDE.md) updated to match.


Committed-By-Agent: claude

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-04 16:55:00 -04:00
kreese-stripe a20a948aec fix: Add metadata to SpendRequest type + add some test cases (#222)
* Add  to type + add some test cases

* fmt
2026-07-31 09:58:24 -04:00
jlau-stripe edd969a6a0 update jira destination (#224)
* update jira destination

* remove unintended changes
2026-07-30 10:42:18 -04:00
github-actions[bot] e0bf195daf Version Packages (#220)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@stripe/link-cli@0.11.0
2026-07-27 16:48:12 -04:00
kreese-stripe 1c2fd6e603 feat: Support metadata in spend-request create command (#219)
* Support metadata in spend-request create command

* Changeset
2026-07-27 16:44:41 -04:00
dknudsen-stripe b87f7d5a9d feat: persist and display oauth scope + auth details (#217)
Committed-By-Agent: claude
2026-07-24 13:43:59 -07:00
github-actions[bot] df13387255 Version Packages (#216)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@stripe/link-cli@0.10.1
2026-07-23 10:02:43 -04:00
kreese-stripe b097a579e0 fix: Improve security posture of mpp pay command + skillfile (#215)
* Improve security posture of mpp pay command + skillfile

* rn addition

* commit changeset
2026-07-23 09:58:49 -04:00
sylwang-stripe f64d2a1c45 add activity_url and transaction_id to SpendRequest (#214)
* add transaction_id and activity_url to SpendRequest

* scope to only finalized succeeded state

* fix formatting
2026-07-22 10:43:25 -04:00
bensandler-stripe 45d2839fe8 Auto-install skill files on npm install (#212)
Add a postinstall script that copies the SKILL.md into
~/.claude/skills/ and ~/.codex/skills/ so the skill is
available globally without being inside the repo. Updated
prepack to bundle the skills directory into dist/.


Committed-By-Agent: claude

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-07-21 12:42:40 -04:00
kreese-stripe 384b5b2d23 Update README and some test data references (#210)
* Replace testmode card number

* Update readme for testmode
2026-07-21 11:01:06 -04:00
sylwang-stripe 62ada5e6ac surface support_url on identity_verification_failed errors (#204)
Committed-By-Agent: claude
2026-07-21 10:05:20 -04:00
github-actions[bot] c2b63db596 Version Packages (#206)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@stripe/link-cli@0.10.0
2026-07-21 09:02:47 -04:00
Ryan Aubrey eaf0b32269 Improve mpp pay command (#202)
* Add MPP inspect command

* feat: rework mpp pay to handle full end-to-end 402 flow

mpp pay now probes the URL for a 402 challenge, parses the
WWW-Authenticate header to extract network_id and amount, creates a
spend request, yields the approval URL for the agent to present, and
completes payment with the SPT after approval.

- Remove mpp inspect (subsumed into pay flow)
- Add --context, --amount, --payment-method-id, --test flags
- Make --spend-request-id optional (backward compat)
- Agent mode yields approval URL immediately with _next hints
- Interactive mode handles full flow inline with polling
- Update SKILL.md and CLAUDE.md with new flow docs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude

* fix: update mpp pay tests to handle generator array output

The mpp pay command now uses an async generator (`async *run`) which
wraps yielded values in an array in JSON output mode. Update three
tests to extract [0] from the output array.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude

* refactor: remove auto-generated context and step translation layer in mpp pay

Context is now required (min 100 chars) for the full MPP flow — agents must
provide a meaningful description. Also refactors onStep to emit typed Step
values directly, removing the string-to-enum mapping in the component.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude

* revert version bump in SKILL.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude

* fix: remove extra blank line to pass biome format check

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-07-20 16:49:09 -04:00
kreese-stripe 4b5f5be4b0 Harden the security of the serve command (#205)
* Harden the security of the serve command

* fmt

* fix version
2026-07-20 16:00:05 -04:00
Ryan Aubrey 4343245afc feat(mpp): support decoding session challenges alongside charge (#203)
* feat(mpp): support stripe session challenges alongside charge

Add intent="session" support to the MPP flow. Session challenges use an
open/grantedToken credential shape instead of the bare SPT payload.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude

* chore: retrigger CI

Committed-By-Agent: claude

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-07-20 12:43:00 -04:00
Selina Feng 573b541b19 Add support for the --source filter flag in the balances command (#199) 2026-07-16 14:33:56 -04:00
jlau-stripe 543ea36ce0 bump version to 0.9.0 (#201) @stripe/link-cli@0.9.0 2026-07-16 12:55:54 -04:00
dknudsen-stripe 3cfe555915 feat(financial-insights): Add auth support for Financial Insights (#200)
* feat(financial-insights): add specifying authorization_details for financial insights resources
2026-07-16 08:47:58 -07:00
jlau-stripe ced5e47490 introduce approval_details to spend request creation (#198)
* introduce approval_details to spend request creation

* fix: biome formatting

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Committed-By-Agent: claude

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-15 14:36:45 -04:00
Selina Feng e3629cc943 Add support for balances list CLI command (#194) 2026-07-15 12:21:29 -04:00
Selina Feng c7a4a3169b Add support for sources list CLI command (#193) 2026-07-15 11:37:39 -04:00
Selina Feng 83b7d41916 Extract shared HTTP transport layer into BaseResource (#192) 2026-07-15 10:29:54 -04:00
nvp-stripe 4434cd11c6 docs(create-payment-credential): make Link Pay Token flow autonomous-safe (#195)
* docs(create-payment-credential): make Link Pay Token flow autonomous-safe

The Link Pay Token section covered token retrieval and injection but
omitted the pieces that make the flow complete unattended, so an agent
following it would fail detection/injection and retry in a loop:

- the "I am an AI agent" checkbox that gates the hidden
  input[name="link_pay_token"] (and must be set via the native setter,
  not .click());
- that the checkbox and input live in the Stripe accessory iframe;
- the ~5-minute token TTL (retrieve just before injecting);
- the exchange/lookup success signal to wait on;
- a bounded stop/fallback instead of endless retries.

Changes (docs only, merchant-agnostic; no internal flags/accounts):
- Step 2 detection now keys on the checkbox, not only the initially
  absent token input.
- Step 5 Link Pay Token: fresh context -> reveal via checkbox -> retrieve
  token -> inject -> wait for go-signal -> pay, plus "stop, don't loop".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude

* docs(create-payment-credential): gate LPT flow on the input, not the component

Review feedback (raubrey): lean on the AiAgentPaymentSteering block as the
anchor and instruction source instead of duplicating mechanics, and account
for surfaces that render the block but disable the inline token input.

The same component renders on Payment Elements (input on by default) and on
hosted Checkout (input gated by checkout_hosted_link_pay_token_enabled, off
today). So "found the component" cannot mean "do the token flow": on hosted
Checkout the checkbox and instructions show with no input, which would loop.

- Step 2 detection now confirms the token path by checking whether
  input[name="link_pay_token"] appears after ticking the checkbox; if it does
  not, follow the block's instructions and fall back to card.
- Step 5 delegates the flow narrative to the block's rendered steps, reveals
  the checkbox with a DOM-level click() (matching the e2e deploy spec) instead
  of a native-setter dance, and keeps the bounded stop/fallback so an
  input-disabled surface never loops.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude

* update skill.md

* LPT to card fallback can reuse the same spend request

* udpate payment element and browser session detail

* drop references to elements

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 10:17:58 -04:00
nvp-stripe 9799b0ff7e Re-add Link Pay Token flow to create-payment-credential skill (#188) 2026-07-10 12:48:53 -04:00
jlau-stripe 7dadfcd1ef patch version (#187) @stripe/link-cli@0.8.3 2026-07-07 10:34:46 -04:00
jlau-stripe b3b25946c9 feat: surface verification_url in spend-request error output (#186)
* feat: surface verification_url in spend-request error output

When the API returns additional_verification_required, surface the
verification_url so users know where to complete stepup verification.
Also fixes interactive mode hanging on error by calling useApp().exit().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Committed-By-Agent: claude

* fix: resolve biome lint and format errors in spend-request commands

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Committed-By-Agent: claude

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 10:20:27 -04:00
dmillerjunk-stripe 85084247f8 feat: Add Origin Filter to Transactions Endpoint, fix date filters (#185) 2026-06-30 11:27:54 -04:00
dmillerjunk-stripe c62c4fe22b feat: add transactions command (#175)
Committed-By-Agent: codex

Committed-By-Agent: codex

Co-authored-by: codex <noreply@openai.com>
2026-06-26 15:03:32 -04:00
github-actions[bot] 1ac34e94a9 Version Packages (#179)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@stripe/link-cli@0.8.2
2026-06-26 14:17:06 -04:00
sylwang-stripe 1a0bf3099d update readme (#178) 2026-06-26 12:02:56 -04:00
sylwang-stripe 6f34471086 make payment method id optional for spend-request create (#172)
* make payment method id optional in schema for spend request create

* update payment details type to optional
2026-06-24 15:16:04 -04:00