Runtime LLM Provider Registry

Register operator-composed LLM providers beside a frozen built-in catalog while preserving honest shipped, deferred, model, and capability metadata.

Overview

Description

The Runtime LLM Provider Registry is the formal developer seam for adding another model provider to Dots without modifying the frozen built-in catalog. A composition root registers a provider descriptor under a new name, including display name, implementation type, shipped or deferred status, default model, model catalog, and capability metadata. Overlay-aware lookup and listing functions expose the union, while built-in-only functions remain deterministic.

Runtime provider names are intentionally wider than the closed built-in LLMProviderName union. Registration validates non-empty names and rejects collisions with built-ins or earlier runtime entries. Status-aware helpers expose only genuinely shipped providers, and model helpers preserve the distinction between curated displayable models and internal resolution identifiers.

Selling Points

  • Enterprise or product-specific compositions can add an LLM provider without forking the package's central catalog.
  • Frozen built-in behavior protects existing pickers and dispatchers from unexpected overlay changes unless they opt into the combined list.
  • Collision protection prevents an integration from silently replacing Anthropic, OpenRouter, or another known provider.
  • Provider descriptors carry model and capability facts needed by routing and UI rather than leaving consumers to infer them.
  • Shipped/deferred filtering keeps catalog presence from being mistaken for a usable integration.

User Story

A deployment has an approved internal model gateway. Its composition implements the common provider contract, registers catalog metadata under a new runtime name, and includes the provider in its own dispatcher assembly. Overlay-aware picker or diagnostic code can discover it, while built-in-only consumers continue to see the unchanged platform catalog.

Extension Surface

Pluggable is the defining rung. packages/llm-providers/src/provider-registry.ts exports registerLLMProvider, findLLMProviderInfo, and combined list helpers, and packages/llm-providers/src/types.ts defines the LLMProvider behavior and model contracts implementations satisfy. A new provider can be composed without editing core registry data.

Capabilities & Limits

  • Registers runtime provider names, status, type, display metadata, default model, and model descriptors.
  • Resolves built-in-first lookup and lists runtime-only or combined provider populations.
  • Filters the combined population to providers that explicitly declare shipped status.
  • Limits: the registry stores metadata, not credentials or constructed instances; the composition must separately assemble dispatch.
  • Limits: registration is process-local and operator-scoped, with no tenant-facing production route for arbitrary provider installation.

Implementation Map

  • packages/llm-providers/src/provider-registry.ts
  • packages/llm-providers/src/types.ts
  • packages/llm-providers/src/index.ts
  • packages/llm-providers/src/provider-registry-runtime.test.ts
  • packages/llm-providers/src/streaming-capability.test.ts

Properties

Property
Value
product
dots-platform
extensibility
pluggable
module
SDK
packages
llm-providers
status
shipped
surface
api
summary
Register operator-composed LLM providers beside a frozen built-in catalog while preserving honest shipped, deferred, model, and capability metadata.

Connections

Runtime LLM Provider Registry · Explore connections

  • complementstoRuntime Embedding Provider Registry
  • implemented bytoregisterLLMProvider
  • implemented bytolistAllLLMProviders
  • implemented bytopackages/llm-providers/src/provider-registry.ts
  • implemented bytopackages/llm-providers/src/index.ts
  • implemented bytopackages/llm-providers/src/types.ts
  • complementsfromOpenRouter Multi-Model LLM
  • complementsfromAnthropic LLM Provider

Connected Records8

Complements
Implemented by
listAllLLMProviders
packages/llm-providers/src/index.ts
packages/llm-providers/src/provider-registry.ts
packages/llm-providers/src/types.ts
registerLLMProvider
8 connections.