The Cordis API catalog

The Cordis API catalog is the generated reference of the services, events and types that a build exposes, together with the inherited API that comes with the runtime itself. This page shows what it contains, which entries it keeps, how its regions are generated, and how it is served and checked.

The build pipeline that produces package artifacts is on Plugin artifacts and the catalog, and the calls that cross between a plugin's halves are on Remote methods and streams.

What the catalog contains

Generate the catalog and its regions

Important

Never edit a generated file, or the text between a BEGIN GENERATED and an END GENERATED marker, by hand. Edit the source and regenerate instead.

Which entries the catalog keeps

The checks that fail closed

How the catalog is served

Questions, answered

What is in the Cordis API catalog?

Services, events and the types behind their signatures, plus the inherited context API that comes with the runtime itself. A service is listed with its methods and how to depend on it, and an event with its dispatch mode and listener contract.

Why does the catalog show a class when an interface declares the same key?

When a class and an interface both declare the same service key, the catalog keeps the class and skips the interface.

Why is a deprecated service missing from the catalog?

The catalog skips entries marked deprecated, so it describes the current surface only.

Why is my optional context key not a service?

Only required context keys become services. A key declared as optional, or as possibly undefined, stays out of the catalog.

Why is part of a declaration cut off in the catalog?

Declarations in the generated output are truncated after 1,500 characters. The cut text says the full shape is in the source.

Where does the generated catalog appear?

In the generated file, and in documentation pages: a generated region is titled ## Cordis API, and the inherited API has a page of its own, titled # Inherited Cordis API.

What is the Inherited Cordis API page?

It holds the part of the API that comes with the runtime itself, apart from what packages contribute.

How can I read the catalog while I build an extension?

Use the inspection tools: their answers come from the built catalog, so they describe what the build actually exposes. Inspect and manage extensions covers the calls.

I changed a service. What do I run?

Run pnpm run gen-cordis-api to regenerate the file and the regions, then commit the result. The freshness check pnpm run verify-cordis-api fails on anything that was not regenerated and committed.