Metadata-Version: 2.4
Name: default-watch-pinning-client
Version: 1.0.0
Summary: Session-start client for the Default-watch and pinning service (TextForAgents LLC): probe the effective default, gate the session before any billable work.
Author: TextForAgents LLC
License: MIT
Keywords: agent,default-model,watch,pinning,session-start
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# default-watch-pinning-client

Session-start client for the **Default-watch and pinning service**
(TextForAgents LLC) — https://textforagents.com/products/default-watch-pinning/

Your platform changed its default model overnight — did your fleet's
price and behaviour change with it? The watch service reconciles the
platform changelog against a session-start probe of the *effective*
default and gates the session before any billable work. This package is
the client half: resolve, probe, then bill.

## Quickstart

```python
from default_watch_pinning_client import session_start, SessionBlocked

base = "https://textforagents.com/products/default-watch-pinning"
catalog = {"release_id": "r2", "default_model": "model-new"}

try:
    ok = session_start(base, "my-platform", MY_TOKEN, catalog)
    model = ok["model"]          # proceed: bill against this model
except SessionBlocked as e:
    model = None                 # blocked BEFORE any billable work
```

Verdicts: `UNCHANGED`, `PINNED_OK` and `STAGED` proceed (STAGED proceeds
on the probed old model); `CHANGED` proceeds only with
`accept_changes=True`; `UNANNOUNCED` and `PIN_VIOLATED` always block.

Get a token: `POST /register` then `POST /trial` (one-time free first
month of Watch) or `POST /subscribe` (x402) on the service.
Watch $5/mo per operator · Fleet $9/mo per operator · Delta run $0.01/run.

Support: support@textforagents.com
