feat(atproto): Return All pagination + README recipes
Two more UX improvements requested as follow-ups:
1. Return All toggle on List Records and List Blobs
New boolean parameter that paginates internally until the cursor is
exhausted. When on, the Limit / Cursor fields are hidden and a hardcoded
per-page size is used (100 records / 500 blobs). A MAX_PAGES safety cap
(1000) prevents runaway loops.
- List Records (Return All): concatenates records across pages into the
existing single { records: [...] } output shape. Backwards compatible.
- List Blobs (Return All): emits one item per CID across all pages,
no cursor (since pagination is complete).
Without Return All, both ops behave exactly as before.
2. README recipes section
Three worked examples showing how to compose the blob ops into real
workflows:
- Compose a multi-image Bluesky post (the main thing the new ops unlock)
- Round-trip a blob (download \u2192 transform \u2192 re-upload)
- List every blob in your repo (audits / migrations)
Each recipe is laid out as an ASCII node graph with key parameters
inline, plus 'why this works' / 'tip' callouts for the non-obvious bits.
Tests: extends listBlobs tests with a manual-pagination case to lock in
the cursor-passthrough behavior. 216 tests pass; lint clean.