Skip to content

Extract the model catalog into a standalone declarative package - #127

Open
alexanderguy wants to merge 4 commits into
mainfrom
intr-445-extract-the-model-catalog-into-intxinference-catalog-a
Open

Extract the model catalog into a standalone declarative package#127
alexanderguy wants to merge 4 commits into
mainfrom
intr-445-extract-the-model-catalog-into-intxinference-catalog-a

Conversation

@alexanderguy

@alexanderguy alexanderguy commented Aug 7, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds @intx/inference-catalog, a standalone, declarative, zero-runtime-dependency package that bakes resolved model, provider, and offering facts (capabilities and quirks) as typed constants, published for external consumers. It owns the Capability type locally so consumers never depend on @intx/types, and keeps each offering's discoverySource/curatedCapabilities provenance alongside the baked capabilities literal.
  • Feeds the dev seed and the live-session recorder from the package instead of inline dev-tooling modules. Dev-only credentials and pricing stay as seed-local fixtures joined to the catalog by provider and model.
  • Makes seed pricing optional per offering: every offering is priced-with-fixture or explicitly listed unpriced (never neither, never both), preserving the fail-loud typo-catch on priced models while allowing price-free offerings.
  • Adds the models already probed into the discovery support matrix but not yet in the catalog, as offerings on the existing providers with matrix-baked capabilities and preserved provenance. Shared models fan out across the relays that serve them; these new offerings ship unpriced.

Verification

  • make all passes (build, lint, admin-ui bundle, tests) on HEAD.
  • The catalog guard re-bakes every offering's capabilities from the discovery matrix (ordered), pins the capability vocabulary against @intx/types, and keeps @intx/types out of the published .d.ts. Seed fixture coverage is enforced statically (every offering priced XOR unpriced).
  • Behavior-preserving for the pre-existing catalog: the original models, providers, offerings, capabilities, quirks, and pricing seed byte-identically; the discovered-model expansion is purely additive.

Closes INTR-445

The model and provider facts were hand-authored inline in dev tooling
and reachable only by standing up the seed, its database, and the hub.
Making them a published, dependency-free package gives internal trees
and external consumers a typed source of what models and providers
exist without a running system.

Capabilities are baked to literals so importing pulls no discovery rig,
while each offering keeps its discovery source and curated tags as
provenance. A guard re-bakes from that provenance against the discovery
matrix and pins the capability vocabulary and provider base URLs, so the
duplication the zero-dependency contract requires cannot silently drift.
The seed and the live-session recorder now consume the published
@intx/inference-catalog instead of the inline dev-tooling modules,
which are removed. Dev-only credentials and pricing, deliberately
excluded from the published package, stay as seed-local fixtures joined
to the catalog by provider and model, with a coverage check that fails
loudly on a gap rather than seeding a partial catalog.

Offering capabilities now come from the package's baked literal, which
the package guard pins equal to what the discovery matrix resolves, so
the seeded rows are unchanged.
@linear

linear Bot commented Aug 7, 2026

Copy link
Copy Markdown

INTR-445

@alexanderguy

Copy link
Copy Markdown
Member Author

Self-review (code-review skill) returned clean.

Dev pricing is a fake seed fixture, so a catalog offering can be seeded
without one. Model that as an explicit choice rather than an inference:
an offering must be either priced or listed in the unpriced set, never
neither and never both. A dropped or mistyped price on a priced model
still aborts the seed, so the fail-loud typo-catch is preserved while
price-free offerings become possible.
The discovery support matrix has probed several models the catalog did
not yet carry. Add them as offerings on the existing providers, with
capabilities baked from the matrix and provenance preserved. Shared
models fan out across the relays that serve them; reasoning-bearing
opencode-zen offerings carry the reasoning quirks, extended from the
Kimi backends where that requirement is verified to the others on the
same relay wire.

The new offerings ship without dev pricing, which stays a seed-only
fixture, so they are listed in the seed's unpriced set rather than
given fake prices.
@alexanderguy

Copy link
Copy Markdown
Member Author

Branch extended since the initial review: two commits add optional per-offering seed pricing (priced XOR explicitly-unpriced) and the models already probed into the discovery matrix but not yet in the catalog (added as unpriced offerings on the existing providers). Whole-branch self-review (code-review skill) over the full range re-run and returned clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant