Metadata-Version: 2.4
Name: metrik-sdk
Version: 0.3.1
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.3.1
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). It has already earned its keep twice: the Explorer's
first draft reached into `metrik.core.hashing` for `hash_stream`, and the Benchmark Lab reached
for `metrik.core.env.capture_env`. Both times the fix was to export it publicly rather than to
reach through — which is the difference between an SDK and a wrapper.

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

## Status

**Four of the ten contracts in the specification have implementations** — `ModelLoader`,
`Profiler`, `BenchmarkTask` and `Visualizer` — each backed by a first-party module and resolved
through the public registry, so `metrik plugins` lists them beside any third-party one.

The other six (`SignalProbe`, `AllocationPolicy`, `CompressionBackend`, `Exporter`,
`AssistantBackend`, `ReportRenderer`) are specified but not exported here, deliberately. A
contract with no implementation to check it against is how an SDK ends up with methods nobody
can call; the specification is the right place for a design no caller has pressure-tested yet.
