npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@intx/inference-catalog

v0.5.0

Published

Declarative, dependency-free catalog of inference models, providers, and their offering capabilities and quirks

Readme

@intx/inference-catalog

A standalone, declarative catalog of the inference models and providers the system knows about. It bakes resolved facts — canonical and display model names, per-deployment providers (plugin, base URL), and each offering's capabilities and quirks — into typed constants with no runtime dependencies. Importing the package pulls no discovery rig, no database, no hub, no network, and runs no side effects.

This is the declarative counterpart to @intx/inference-discovery, which stays the exploratory probing rig. The catalog is the typed authoring source for the dev seed; the hub remains the runtime source of truth for what agents actually use, so model and provider configuration stays tunable and policy-controlled at runtime.

Exports

  • @intx/inference-catalog — models, providers and their offerings, the OPENAI_FIRSTPARTY_QUIRKS constant, and the Capability type.
  • @intx/inference-catalog/models — the flat { canonicalName, displayName }[] list on its own, self-contained and dependency-free.

The Capability type is owned by this package rather than re-exported from @intx/types, so consumers get the capability vocabulary without taking a dependency on @intx/types.

Pricing, credential material, and deployment topology are not in this package — they are dev-only fixtures that live with the seed.

Capabilities are baked, with provenance

Each offering carries three related fields:

  • discoverySource — the (provider, model) tuple in the discovery support matrix the wire capabilities are drawn from, or null when the tuple has not been probed.
  • curatedCapabilities — model capabilities the matrix cannot prove (long-context, prompt-caching), curated by hand.
  • capabilities — the resolved list the offering advertises: the matrix wire set for discoverySource followed by curatedCapabilities, baked to a literal.

The provenance (discoverySource, curatedCapabilities) is kept alongside the baked capabilities on purpose. It is what lets the guard recompute the baked value and what lets a future maintainer understand why a baked array holds what it holds.

The re-bake contract

The catalog's content — which models, providers, and offerings exist — is hand-authored. Nothing syncs it from a live source; adding or changing an entry is a manual edit.

Consistency, however, is machine-enforced. The guard test (catalog.test.ts) recomputes each offering's capabilities from its discoverySource and fails if the baked literal has drifted. When discovery captures a new session that proves a new capability, the support matrix changes and this guard fails — the signal that the catalog is stale and must be re-baked. The failure message prints the value to bake in, so re-baking is a copy of the recomputed array into the offering's capabilities. The guard also pins the local capability vocabulary against @intx/types, and — for the brands the catalog and the discovery matrix share — the provider base URLs against the discovery brand map, catching those drifting too.