Metadata-Version: 2.5
Name: jharness-toolkit
Version: 0.8.0
Summary: Tool registry and adaptation toolkit for JHarness
Project-URL: Documentation, https://github.com/Ezio2000/jharness/blob/main/packages/jharness-toolkit/README.md
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.8.0
Requires-Dist: jsonschema>=4.23.0
Requires-Dist: referencing>=0.35.0
Description-Content-Type: text/markdown

# jharness-toolkit

Tool registration, Python function adaptation, JSON Schema validation, retry, and
circuit breaking for JHarness.

```bash
uv add jharness-toolkit
```

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

`ToolRegistry` validates tool arguments and, when a tool declares an output schema,
the `structured_content` of every non-failure result. A `ToolFailure` is a framework
error envelope rather than a successful business payload, so its structured content
is not checked against the success schema. `RetryingTool` retries only selected
implementation exceptions and requires an idempotent tool when more than one attempt
is configured. `CircuitBreakingTool` is an in-process policy, not a distributed rate
limiter.

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