Metadata-Version: 2.4
Name: metrik-sdk
Version: 0.2.0
Summary: Metrik plugin SDK — the public contracts every producer and consumer is written against.
Project-URL: Homepage, https://github.com/Asmodeus14/Metrik
Project-URL: Repository, https://github.com/Asmodeus14/Metrik
Project-URL: Issues, https://github.com/Asmodeus14/Metrik/issues
Author: The Metrik Authors
License-Expression: Apache-2.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Requires-Dist: metrik-core==0.2.0
Requires-Dist: pydantic>=2.7
Description-Content-Type: text/markdown

# metrik-sdk

The public contracts. Every first-party module is written against this package and nothing
else — if a built-in producer needs something the SDK does not expose, that is a **bug in the
SDK**, and the fix is to expose it publicly rather than to reach through into `metrik.core`.

That rule is enforced in CI by the `sdk-dogfooding` contract in
[`.importlinter`](../../.importlinter), from Phase 2 — seven phases before the SDK is
nominally "delivered". It is how the SDK gets to be real instead of aspirational.

See [`sdk-contracts.md`](../../docs/planning/sdk-contracts.md) for the full specification.

## Status

Phase 2. Of the ten contracts in the spec, `ModelLoader` and `Producer` exist because the
Explorer needs them. The rest arrive with the modules that implement them; adding a contract
before there is an implementation to check it against is how SDKs end up with methods nobody
can call.
