Explorer
The Lookup page calls the docs worker, and the worker calls the library: createFromPURL for the adapter, then fetchPackage, fetchVersions, fetchDependencies or fetchMaintainers, exactly as a script would. Nothing on the page is a mock; a slow answer is the registry being slow, and a 404 is NotFoundError with its message.
| Operation | What it answers | CLI equivalent |
|---|---|---|
| Package | The normalized Package, the display URLs and whatever metadata the registry adds | registries info |
| Versions | Up to fifty versions, newest first, with status and integrity | registries versions --limit 50 |
| Dependencies | The dependencies of the given version, grouped by scope; latest resolved when the PURL has none | registries deps |
| Maintainers | Whoever the registry lists | registries maintainers |
Every query is a deep link: /lookup?purl=pkg:cargo/serde&op=versions opens the page on that answer.
Caching and manners
Answers are cached on the worker, in KV in production, for the library's own TTLs: an hour for a package, thirty minutes for versions, a day for dependencies and maintainers. A failed answer is never cached, so a typo or an outage does not stick. One address can start thirty new registry queries a minute; answers served from the cache do not count.
The worker asks each registry with one retry and a twenty second timeout, and identifies itself as registries.agntn.dev (docs). A 429 from the registry is passed through as a 429 from the worker rather than retried into a ban.
The landing
The panels on the home page start from answers recorded through the library and labelled sample. As the page cycles through its six packages, each one is replaced by the worker's live answer and relabelled live. The recorded answers live in docs/app/utils/landing-fixtures.ts and are regenerated with the library, never edited by hand.