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
-
0.15.0
-
source
- 0.15.0 source October 22, 2026 (299 KB)
-
-
0.14.0
-
source
- 0.14.0 source October 21, 2026 (299 KB)
-
-
0.13.1
-
source
- 0.13.1 source October 07, 2026 (283 KB)
-
-
0.13.0
-
source
- 0.13.0 source October 05, 2026 (281 KB)
-
-
0.12.0
-
source
- 0.12.0 source October 01, 2026 (281 KB)
-