jharness-tools
Ready-to-use filesystem, shell, interaction, and child-agent tools implementing the JHarness kernel tool contracts.
uv add jharness-tools
from jharness.tools import GlobTool, GrepTool, LsTool, ReadTool
Filesystem tools are rooted in one workspace and reject path escapes. BashTool uses
a bounded non-interactive Bash process and a minimal environment by default, but it is
not an operating-system sandbox: commands retain the filesystem and network access
granted by the host. inherit_environment=True explicitly exposes the full host
environment.
Workspace path checks are not a mount namespace; mutually untrusted writers need dedicated filesystem isolation and hard-link controls. Process-tree cleanup is best effort, so containers—especially PID 1—must forward signals and reap child processes.
Interaction tools suspend for a host response. Child-agent tools accept the narrow
AgentBackend protocol. For a single-process host, InMemoryAgentBackend provides
concurrent supervision, parent-run authorization, idempotent creation, waiting, and
cancellation:
from jharness.kernel import Runtime
from jharness.tools.agent import InMemoryAgentBackend
child_runtime = Runtime(model=model, tools=child_tool_catalog)
agent_backend = InMemoryAgentBackend(
child_runtime,
system_prompt="Follow the delegated task and return a concise result.",
)
Pass agent_backend to AgentTool, AgentGetTool, AgentWaitTool, and
AgentCancelTool. After a parent suspension, the host can await the in-memory
implementation's wait_for_terminal(agent_id, requester=parent_context) and deliver
the snapshot with resume_agent; other backend implementations may use their own
durable notification mechanism. The in-memory backend retains idempotency records for
its lifetime, stores them only in its process, and must be used from one asyncio event
loop. Hosts requiring bounded retention, crash recovery, or shared workers should
implement AgentBackend with durable storage. The host remains responsible for
choosing trusted child Runtime configuration and recording telemetry.
Installing this distribution installs the exact matching jharness-kernel version.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jharness_tools-0.6.0.tar.gz.
File metadata
- Download URL: jharness_tools-0.6.0.tar.gz
- Upload date:
- Size: 57.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31d6de6d2dbdc851b2a40d8531d1adee1f64deb599407c7780131e309b0c49a8
|
|
| MD5 |
146ff4ba5560ae40780fc5d00bbf01c2
|
|
| BLAKE2b-256 |
b147ccddac9340ec9e62460860da7caa50c4dbaea5f96bb8be08191b1c9d91ae
|
Provenance
The following attestation bundles were made for jharness_tools-0.6.0.tar.gz:
Publisher:
release.yml on Ezio2000/jharness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jharness_tools-0.6.0.tar.gz -
Subject digest:
31d6de6d2dbdc851b2a40d8531d1adee1f64deb599407c7780131e309b0c49a8 - Sigstore transparency entry: 2432912888
- Sigstore integration time:
-
Permalink:
Ezio2000/jharness@438bf4434a98e013c13fabf5af0e620119dc5c65 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Ezio2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@438bf4434a98e013c13fabf5af0e620119dc5c65 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file jharness_tools-0.6.0-py3-none-any.whl.
File metadata
- Download URL: jharness_tools-0.6.0-py3-none-any.whl
- Upload date:
- Size: 76.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f39cb229345f2f9d9deb332c63535ad030d008e0018280d456490d6747e8396
|
|
| MD5 |
374207f17a31005a93610f807a251a57
|
|
| BLAKE2b-256 |
a46ccd8b95cc0d2211156b22a6c15a43b941600d5dd6516b9c1d4c05945aacca
|
Provenance
The following attestation bundles were made for jharness_tools-0.6.0-py3-none-any.whl:
Publisher:
release.yml on Ezio2000/jharness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jharness_tools-0.6.0-py3-none-any.whl -
Subject digest:
9f39cb229345f2f9d9deb332c63535ad030d008e0018280d456490d6747e8396 - Sigstore transparency entry: 2432913304
- Sigstore integration time:
-
Permalink:
Ezio2000/jharness@438bf4434a98e013c13fabf5af0e620119dc5c65 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Ezio2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@438bf4434a98e013c13fabf5af0e620119dc5c65 -
Trigger Event:
workflow_dispatch
-
Statement type: