Commit Graph

42 Commits

Author SHA1 Message Date
drapeau-stripe c6464e3750 feat: Add --attempt-trace to link-cli report (#289)
A step-by-step account of the path the agent took on a domain, written so
another agent could follow it. `--step` already records where the agent was
when the outcome occurred; `--attempt-trace` is the whole path.

Sent for every outcome, not just `success`. The dead ends on a failed attempt
are what stop the next agent from spending tokens on them.

The field's value is set almost entirely by how it is described, so the schema
description asks for a specific shape — one numbered line per step, each with
the URL path, the label acted on, the action, and the observed result — and
`skills/create-payment-credential/SKILL.md` carries a worked example. Agents
match an example far more reliably than they follow prose.

Deliberately no zod `.max()`. The API truncates past
`REPORT_ATTEMPT_TRACE_MAX_LENGTH` (8000) and still records the report, so
rejecting client-side would trade a long narrative for a lost outcome.
`--step` and `--freeform-context` keep their `.max(500)` because the API
rejects those outright.

Both the description and the docs tell agents to keep the buyer's personal
data out of it and write `[email]`/`[address]` instead.

Requires the server-side `attempt_trace` field on `POST /agent_observations`,
which ships separately and is not deployed yet. Until it is, the API ignores
the extra key, so sending it is a no-op rather than an error.

Test plan
- `pnpm run test` — 310 tests pass, including new SDK coverage for sending
  `attempt_trace` in the body, omitting it, and passing an over-cap value
  through unchanged for the server to truncate.
- `pnpm run typecheck` and `pnpm biome check .` clean.
- `node packages/cli/dist/cli.js report --schema` shows `attemptTrace` with no
  `maxLength`, while `step`/`freeformContext` keep theirs.


Committed-By-Agent: claude
Orbit-Session-Id: e89d7110-bf81-4181-974b-21b0d5dc0c30

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 09:18:16 -07:00
Steve Kaliski 863fe0a64b add golang sdk (#308) 2026-09-08 18:47:24 -04:00
sylwang-stripe 02d4dcfe1a Simplify user-info verification guidance (#302) 2026-09-06 21:33:32 -04:00
sylwang-stripe 1fe657f23c Expose Agent Wallet verification action URL (#299) 2026-09-06 21:10:55 -04:00
sylwang-stripe ca643dce42 Expand user info to include spend limits and step-up status (#295)
Committed-By-Agent: codex

Co-authored-by: codex <noreply@openai.com>
2026-09-04 16:05:24 -04:00
kreese-stripe 033cee0f07 fix: Sanitize shell quotes during mpp flow (#281)
* Sanitize shell quotes

* comments

* Changeset
2026-08-31 17:03:40 -04:00
Dan Hill 99532d0b81 Improve readme (#268)
* improve readme

* Readme cleanup

* Readme cleanup

* Readme cleanup

* Readme cleanup
2026-08-26 10:47:10 -04:00
Steve Kaliski 8ee4dea771 Prepare Link SDK for publication (#265)
Committed-By-Agent: codex

Committed-By-Agent: codex

Co-authored-by: codex <noreply@openai.com>
2026-08-25 14:19:10 -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
sylwang-stripe 9dc8c650e8 Handle spend request requires_action state across create/retrieve/approval flows (#248) 2026-08-13 14:16:21 -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
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
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
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
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
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
sylwang-stripe 1a0bf3099d update readme (#178) 2026-06-26 12:02:56 -04:00
drapeau-stripe f56968cd2c [Link Agent Wallet] Add reporting instructions to SKILL.md and README (#150)
* docs: add report command instructions to SKILL.md and README

- SKILL.md: reporting instructions (when to report, tag reference, examples)
- README.md: report outcomes section with usage examples

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

* docs: make outcome reporting opt-in and add tag guidance

Address review feedback on the reporting docs:
- Soften the "REQUIRED" / "always report" language to encouraged-but-optional
  in both SKILL.md and README, so reporting is suggested rather than mandated
  for now.
- Add guidance to prefer the most specific tag and use `other` only when none
  apply (describing details in --freeform-context).

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

* docs: reword report rationale to "improve checkout for agents"

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

* docs: align SKILL.md report rationale wording with README

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-23 15:29:37 -07:00
kreese-stripe a87ff0cbe4 feat: update SR max amount (#147)
* update SR max amount

* fmt

* trigger ci

* trigger ci
2026-06-10 12:31:40 -04:00
kreese-stripe e09d499424 Update documented limits (#146) 2026-06-10 10:30:59 -04:00
Dan Hill fe45662873 HTTP mcp (#121)
* feat: add serve command to expose MCP endpoint over HTTP

Committed-By-Agent: claude

* fix: cleanup and readme

* Potential fix for pull request finding 'CodeQL / Information exposure through a stack trace'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-05-28 15:45:53 -04:00
Dan Hill 0783323004 WIP: auth from env (#107)
* feat: add noRefresh option to createAccessTokenProvider

Committed-By-Agent: claude

* feat: add env-based token provider to ResourceFactory

Committed-By-Agent: claude

* feat: read LINK_ACCESS_TOKEN, LINK_REFRESH_TOKEN, LINK_NO_REFRESH from env

Committed-By-Agent: claude

* docs: add LINK_ACCESS_TOKEN, LINK_REFRESH_TOKEN, LINK_NO_REFRESH to env vars docs

Committed-By-Agent: claude

* fix: auth status shows LINK_ACCESS_TOKEN state instead of stored credentials

Committed-By-Agent: claude

* refactor: extract resolveAuthInfo helper, simplify auth status component

Committed-By-Agent: claude

* fix: formatting
2026-05-27 10:04:43 -04:00
Dan Hill 5d76bf614d feat: document current limits (#104) 2026-05-27 09:00:10 -04:00
kreese-stripe 27b3de936a feat: support polling straight from auth login (#78)
* support polling straight from auth login

* improvements

* sanitize output; make the polling into a shared helper and share across the auth login polling and the auth status polling
2026-05-21 13:24:55 -04:00
kreese-stripe 8a194d914e Update the docs for totals to reflect new accepted values (#96) 2026-05-11 11:08:10 -04:00
Shubham Mathur f455286336 fix: CLI Approval Polling Bugs (surfaced by #63) (#95)
* fix: recognize all terminal statuses in approval polling

* fix: extend default spend-request polling window past server-side expiry
2026-05-10 15:38:12 -04:00
Dan Hill 281b61c38b Specify credential file (#81)
* feat: allow specifying a credential file

* copy cleanup

* fix: make flag clearer
2026-05-08 12:33:40 -04:00
Ryan Aubrey 20c59dc6ab feat: shipping addresses (#79)
* Basic command, readme, skill file

* Skill update

* Better formatting

* Formatting

* Simplify skill file
2026-05-07 18:02:29 -04:00
kreese-stripe 6e1e9d2f66 (feat): Commands to cancel a spend request (#77)
* commands to cancel a spend request

* document

* nit: remove unneeded status text

* code improvements

* Fix typecheck

* Just go back to old promise approach
2026-05-07 14:43:35 -04:00
Dan Hill 8cc93e9906 feat: allow writing payment credentials to file to avoid context (#67) 2026-05-04 17:50:34 -04:00
Dan Hill 046557ebda Docs, skill improvements 2026-05-03 (#68)
* WIP

* fix totals schema type

* Improve copy with dante

* fix: formatting

* fix: minor path fix

* fix: correctly handle update notifier in TTY and non-TTY modes

* fix: update package to correct

* fix: formatting

* fix: improve update notifier
2026-05-04 17:49:03 -04:00
Dan Hill 4ee0eb19e1 fix: better document how line items and totals can be passed (#65) 2026-05-02 13:01:15 -04:00
Pejman Pour-Moezzi 21bc584091 fix: fail spend request polling timeout (#56) 2026-04-29 19:53:25 -04:00
Dan Hill cd84685f22 Onboarding Experience (#15)
Add a new user onboarding command
2026-04-28 19:17:44 -04:00
Dan Hill facab3c453 Fix typo in readme and add MCP/CLI mapping to skill
* fix: typo in readme; add cli->mcp mapping to skill file

* changeset
2026-04-28 16:14:15 -04:00
Steve Kaliski f6803a5f5c add mcp instructions in readme (#30) 2026-04-27 23:58:38 -04:00
shirleyz-stripe 471cbb7cc5 Replace passphrase with phrase across repo (#24) 2026-04-27 16:54:56 -04:00
Steve Kaliski eb2115d658 migrate commander -> incur enabling mcp server (#18)
* migrate commander -> incur enabling mcp server

* save

* use incur skill handling and clarify to use mcp if running

* add changeset

* fix type error

* fix fmt

* fix tests

* fmt
2026-04-27 13:37:10 -04:00
Dan Hill 91ce9f035d Update notifier
Use update notifier to indicate new versions. In TTY outputs, this is a very standard update-notifier integration. For JSON outputs consumed by agents, we include the info in the auth status command to not interfere with agents parsing output in other commands.
2026-04-25 17:30:46 -04:00
Dan Hill 45cf25be6f Skill improvements (#8)
npx skills add for skill installation
npm install -g for installing from skill file
remove the unneeded --install option
remove some duplicative instructions
tell it to use --include card when retrieving a card
tell it to check auth status before running a new login command
2026-04-24 10:33:22 -04:00
qaisjp 3b372f2209 Initial commit
Co-authored-by: ben-davis <2607068+ben-davis@users.noreply.github.com>
Co-authored-by: bensnell-stripe <47830399+bensnell-stripe@users.noreply.github.com>
Co-authored-by: danhilltech <876990+danhilltech@users.noreply.github.com>
Co-authored-by: kreese-stripe <215516483+kreese-stripe@users.noreply.github.com>
Co-authored-by: qaisjp <923242+qaisjp@users.noreply.github.com>
Co-authored-by: raubrey-stripe <185865758+raubrey-stripe@users.noreply.github.com>
Co-authored-by: shirleyz-stripe <264516373+shirleyz-stripe@users.noreply.github.com>
Co-authored-by: sjkaliski <602845+sjkaliski@users.noreply.github.com>
2026-04-23 17:22:09 -04:00