Ships the `portage` executable. `portage buy ` tries native UCP discovery first (zero credentials, works on any store that's opted in), falls back to a portage-ucp-* platform adapter only when this process already has that platform's own credentials in env (i.e. it's your own store or one you're integrated with), and otherwise says so plainly — never scrapes or session-hijacks as an anonymous shopper. `portage find` covers the no-URL case: ask an allowlist, DuckDuckGo, Brave, or a Google Programmable Search engine which stores might sell something, keep the ones answering /.well-known/ucp, and search their catalogs — documented APIs only, no SERP scraping. Depends on portage-ucp (for platform detection via Resolver), portage-ucp-client (for the actual buy calls), and portage-ucp-journal (for `portage-console`'s read-only view of local purchase/transaction/order state); no single adapter gem is a hard dependency. Ranking, escalation and the spend-policy check use portage-ucp core's rules; portage-ucp-decision is optional and only the opt-in confidence gate needs it.

Required Ruby Version

>= 3.2

Authors

Tom Whitbread

Versions

  1. 0.13.0 October 05, 2026 (281 KB)
  2. 0.12.0 October 01, 2026 (281 KB)
  3. 0.11.0 September 30, 2026 (272 KB)
  4. 0.10.0 September 29, 2026 (229 KB)
  5. 0.9.0 September 29, 2026 (226 KB)
Show all versions (19 total)

Pushed by

SHA 256 checksum