Metadata-Version: 2.4
Name: jammi-ai-platform
Version: 0.2.0
Summary: Python SDK for Jammi AI Platform — the commercial managed audit-native AI platform
Project-URL: Homepage, https://console.jammi.cloud
Project-URL: Documentation, https://docs.jammi.cloud
Author: F-Inverse
License: Proprietary
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Requires-Dist: grpcio>=1.60
Requires-Dist: protobuf>=4.25
Requires-Dist: pyarrow>=14
Requires-Dist: typing-extensions>=4.0
Provides-Extra: dev
Requires-Dist: grpcio-tools>=1.60; extra == 'dev'
Requires-Dist: pytest>=7; extra == 'dev'
Requires-Dist: requests>=2.31; extra == 'dev'
Description-Content-Type: text/markdown

# jammi-ai-platform

Python SDK for the Jammi AI Platform — the commercial managed
audit-native AI platform. Talks to a Jammi SaaS endpoint via gRPC with
bearer-token authentication.

## Install

```bash
pip install jammi-ai-platform
```

Wheel-only distribution. Python 3.9+ on Linux / macOS / Windows.

## Quickstart

```python
import jammi_ai_platform as jap

with jap.Connection(url="https://api.jammi.cloud", api_key="jt_…") as conn:
    print(conn.tenant_id)         # resolved via WhoAmI at connect time
    print(conn.token_label)       # label of the bearer in use

    registry = jap.Registry(conn)
    model_id = registry.register_model("recall-q4", task="embedding")
    print(model_id)
```

Use `http://…` instead of `https://…` for local insecure development.

## Surface

- `Connection` — gRPC channel + bearer auth, calls `WhoAmI` at connect
- `Registry` — model + version + evidence catalog
- `Gate` — quality-gate checks
- `Monitor` — embedding / inference / divergence monitors + run streaming
- `Experiment` — Bayesian / Grid / Random experiments
- `DeploymentBlocks` — block / unblock sources from production traffic
- `Resilience` — perturbation-based validation runs
- `Auth` — issue / revoke / list API keys; `WhoAmI`
- `Tenants` — read-only tenant directory lookup

## Errors

`status_to_exception` (in `jammi_ai_platform.errors`) maps every
gRPC status code to a typed Python exception. The hierarchy:

- `EnterpriseException`
  - `NotFoundError`
  - `AlreadyExistsError`
  - `TransitionNotAllowedError`
  - `TenantUnboundError`
  - `ConfigError`
  - `PermissionDeniedError`

## Docs

Full docs at https://docs.jammi.cloud.
