Metadata-Version: 2.4
Name: jharness-toolkit
Version: 0.3.1
Summary: Tool registry and adaptation toolkit for JHarness
Project-URL: Documentation, https://github.com/Ezio2000/jharness/tree/main/docs
Project-URL: Repository, https://github.com/Ezio2000/jharness.git
Author: JHarness contributors
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: jharness-kernel==0.3.1
Requires-Dist: jsonschema>=4.23.0
Requires-Dist: referencing>=0.35.0
Description-Content-Type: text/markdown

# jharness-toolkit

JHarness tool registration, JSON Schema validation, Python function adaptation,
retry, and circuit-breaking utilities.

```bash
pip install jharness-toolkit
```

```python
from jharness.toolkit import ToolRegistry
```

Installing this distribution installs the matching `jharness-kernel` version.

`RetryingTool` accepts an explicit tuple of retryable exception classes. Retries are
available only for tools whose execution facts declare `idempotent=True`; settled
tool failures are returned immediately. Exhaustion raises `RetryExhaustedError` with
the ordered attempt errors, and retry delays use bounded exponential backoff with
jitter while observing cooperative cancellation.

`CircuitBreakingTool` is a closed/open/half-open circuit. An open circuit rejects
calls until `recovery_timeout_seconds` elapses, then permits one probe. Success resets
the circuit and failure reopens it. These decorators are in-memory policies for one
process and are not a substitute for a distributed rate limiter or durable breaker.
