jharness-kernel
The dependency-free JHarness runtime kernel, including lifecycle values, execution, checkpoints, diagnostics, extension ports, and portable wire codecs.
uv add jharness-kernel
from jharness.kernel import Message, Runtime
Kernel owns persistent RunHistory, incremental DurableCommit, cursor-based pending
runtime tool calls, and complete-history model requests. It has no runtime dependency.
Its model boundary keeps media, execution ownership, and protocol order separate:
| Concern | Public values | Meaning |
|---|---|---|
| Modalities | ModelCapabilities.input_modalities and output_modalities |
What media the model itself can understand or produce |
| Tool selection | ModelCapabilities.tool_choice_types, runtime_tool_kinds, parallel_runtime_tool_calls, and parallel_runtime_tool_call_control |
Which input kinds, selection policies, and runtime parallel behavior the model can honor |
| Host-executed tools | RuntimeToolSpec (StructuredToolSpec or FreeformToolSpec) through ModelRequest.runtime_tools, followed by the matching RuntimeToolCall |
JHarness schedules approval and execution through the host tool catalog |
| Provider-executed tools | ProviderToolId, ProviderToolSpec, and ProviderToolCall |
The remote provider runs the tool; JHarness validates and records the result but never schedules it |
| Response order | ModelResponse.output and assistant Message.output |
ContentPart, RuntimeToolCall, and ProviderToolCall remain in the order emitted by the protocol |
The kernel also advertises structured output, JSON mode, seed, streaming, and usage
reporting directly on ModelCapabilities. The runtime validates requests against this
single immutable declaration before model invocation.
Streaming deltas identify their destination with output_index and optional
content_index; the terminal ModelResponse remains the authoritative durable value.
Only runtime-owned RuntimeToolCall items can move a run into ToolsPending.
provider_turn_pending instead keeps an unfinished provider-owned turn in
Planning (or alongside runtime calls in ToolsPending) until the next model
response clears it.
The source and portable contracts are maintained in the JHarness repository.
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_kernel-0.8.0.tar.gz.
File metadata
- Download URL: jharness_kernel-0.8.0.tar.gz
- Upload date:
- Size: 74.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38c5659ec586df1ed8fca47de7417391b3de6dee2687c3e6e445247f6ed55990
|
|
| MD5 |
57dd663799c3c1a98458abb742061a5e
|
|
| BLAKE2b-256 |
4a432b8e634c6a4d0deb8a51bd41092e78fe09d899f584ace15695a74accbb65
|
Provenance
The following attestation bundles were made for jharness_kernel-0.8.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_kernel-0.8.0.tar.gz -
Subject digest:
38c5659ec586df1ed8fca47de7417391b3de6dee2687c3e6e445247f6ed55990 - Sigstore transparency entry: 2438267828
- Sigstore integration time:
-
Permalink:
Ezio2000/jharness@63eb6c08bf5724a30ef35a400a17d41291055222 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/Ezio2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@63eb6c08bf5724a30ef35a400a17d41291055222 -
Trigger Event:
push
-
Statement type:
File details
Details for the file jharness_kernel-0.8.0-py3-none-any.whl.
File metadata
- Download URL: jharness_kernel-0.8.0-py3-none-any.whl
- Upload date:
- Size: 100.8 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 |
75803741bd2ea6660abbb29f2b165f1a79ed551369c7f987f2d36c7f1fbbaed9
|
|
| MD5 |
2852f0d851ca2e447c2460c8b731320c
|
|
| BLAKE2b-256 |
cd1023874d85f4c09e0ff5ff112e70e12e2cd110e8bf771724258644cafea411
|
Provenance
The following attestation bundles were made for jharness_kernel-0.8.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_kernel-0.8.0-py3-none-any.whl -
Subject digest:
75803741bd2ea6660abbb29f2b165f1a79ed551369c7f987f2d36c7f1fbbaed9 - Sigstore transparency entry: 2438267864
- Sigstore integration time:
-
Permalink:
Ezio2000/jharness@63eb6c08bf5724a30ef35a400a17d41291055222 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/Ezio2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@63eb6c08bf5724a30ef35a400a17d41291055222 -
Trigger Event:
push
-
Statement type: