keeps: pin CIDs to a public pinning service after every upload
Adds a vendor-neutral pinToPublicService() helper that speaks the standard
IPFS Pinning Service API spec (Filebase, web3.storage, Estuary all work).
Pins the CID we already own — no re-upload — so objkt's indexer and other
public gateways have a well-peered secondary source when our self-hosted
Kubo node is slow or briefly unreachable. Fire-and-forget, skips cleanly
when IPFS_PINNING_SERVICE_URL/TOKEN env vars are not configured.
Wired into both keep-prepare-background.mjs (new mints + rebakes) and
keep-update.mjs (on-chain metadata sync), alongside the existing oven
seeder so we retain our own mirror.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>