Metadata-Version: 2.4
Name: ski-sdk
Version: 0.1.0
Summary: Typed Python client for the SKI Framework SKI Model, with one-call provenance verification.
Author: KpiFinity Inc.
License: Apache-2.0
Project-URL: Homepage, https://github.com/kpifinity/ski-framework
Project-URL: Documentation, https://kpifinity.github.io/ski-framework/
Project-URL: Issues, https://github.com/kpifinity/ski-framework/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: httpx<0.29,>=0.27
Requires-Dist: pydantic<3,>=2.13.4
Requires-Dist: cryptography<48,>=46

# ski-sdk

> Install from PyPI: `pip install ski-sdk` (publishing starts with the first release after June 2026).

Typed Python client for the [SKI Framework](https://github.com/kpifinity/ski-framework)
SKI Model, with one-call verification of a verdict's signed provenance.

> **Status: early alpha.** This wraps an alpha HTTP API; pin your versions. The
> SDK is versioned independently of the framework — see the compatibility note
> in the docs.

```python
from ski_sdk import SKIClient

client = SKIClient(endpoint="https://ski.internal:8000", api_key="…")
env = client.evaluate(
    measurement_id="m-001",
    timestamp="2026-06-05T12:00:00Z",
    subject="stack-7",
    measurement={"so2_ppm": 150},
)
print(env.verdict, [c.node_id for c in env.kg_citations])  # FLAG ['energy.so2.lte_100ppm']
```

Verify a verdict's signed transcript (tamper-evident provenance):

```python
from ski_sdk import verify_transcript

report = verify_transcript(transcript, public_key_pem)
assert report.ok  # signature valid AND recorded hashes match the canonical pair
```
