jharness-models
OpenAI Chat (Chat Completions API), OpenAI Responses, and Anthropic Messages adapters; DeepSeek profiles; and provider-neutral model composition for the JHarness kernel.
uv add jharness-models
from jharness.models.openai import OpenAIResponsesModel
| Adapter | Runtime tools | Provider-hosted tools | Ordered output |
|---|---|---|---|
| OpenAI Chat | Function calls | None | Content and calls are normalized into ModelResponse.output |
| Anthropic Messages | Client tool_use |
Official web-search preset or explicit server-tool codecs | Native block order is retained |
| OpenAI Responses | Function and freeform calls | Official web-search and image-generation presets or explicit codecs | Native Responses item order is retained |
DeepSeek's native Responses endpoint uses OpenAIResponsesModel with
deepseek_responses_profile. That profile is text-only, accepts only
deepseek-v4-flash, exposes provider-hosted web search plus the exact freeform
apply_patch runtime tool, and forces stateless requests with complete history. The
DeepSeek Messages profile independently exposes its verified server-side web search.
Model modalities describe what the model itself understands or produces. Tool
ownership is separate: RuntimeToolCall is executed by the JHarness runtime, while a
ProviderToolCall records work already executed by the supplier. Both remain
interleaved with ContentPart values in ordered output.
Each protocol profile contains the exact immutable ModelCapabilities returned by
its model client. The default Responses and Messages profile classes remain
provider-tool neutral. The official openai_responses_profile() and
anthropic_messages_profile() factories install their hosted-tool identities and
codecs, but do not add a tool to any request. The host must still pass an explicit
ProviderToolSpec factory result to Runtime, and selecting an official profile is
the host's confirmation that the chosen endpoint and model support its advertised
capabilities. Tool selection is declared as a set of supported types rather than a
coarse boolean. Supplier factories only compose protocol capabilities and wire
policies; the shared codecs contain no supplier-name branches.
from jharness.kernel import Runtime
from jharness.models.openai import (
OpenAIResponsesModel,
openai_responses_profile,
openai_responses_web_search,
)
model = OpenAIResponsesModel(..., profile=openai_responses_profile())
runtime = Runtime(
model=model,
provider_tools=(openai_responses_web_search(),),
)
OpenAI Responses sends store=false by default and requests encrypted reasoning
history. Hosted image generation additionally requires a host-owned
OpenAIResponsesArtifactStore; generated base64 is persisted externally and durable history
contains only integrity-bearing ArtifactRef values. Stores must be durable,
idempotent, safe for provider-controlled call ids, available during run recovery, and
responsible for retention and garbage collection of uncommitted saves.
Retry and fallback compose directly around model values:
from jharness.models.decorators import FallbackModel, RetryingModel
model = FallbackModel(
RetryingModel(primary_model, max_attempts=3),
RetryingModel(backup_model, max_attempts=2),
)
Installing this distribution installs the exact matching jharness-kernel version.
Provider configuration and composition details are in the
model adapter guide.
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_models-0.8.0.tar.gz.
File metadata
- Download URL: jharness_models-0.8.0.tar.gz
- Upload date:
- Size: 65.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdcd7fc7e260d396e32ec70aee86cb2b6643e9d8239f9f459385fd4effc15a11
|
|
| MD5 |
4606213805715bdc94c1579009997a57
|
|
| BLAKE2b-256 |
5d0800d6f0a2d7b090567a544fcc91efb9bdb921bac8e9d870d15749af856c3e
|
Provenance
The following attestation bundles were made for jharness_models-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_models-0.8.0.tar.gz -
Subject digest:
cdcd7fc7e260d396e32ec70aee86cb2b6643e9d8239f9f459385fd4effc15a11 - Sigstore transparency entry: 2438267912
- 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_models-0.8.0-py3-none-any.whl.
File metadata
- Download URL: jharness_models-0.8.0-py3-none-any.whl
- Upload date:
- Size: 87.7 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 |
5f6a30d6dcc1b647f7062524a046e2bf4c2cc8160404492fab92b7602380d22b
|
|
| MD5 |
602b218955f3879a168ce18681a1edde
|
|
| BLAKE2b-256 |
287f8e375cabd09f73c1e40bcd05a69bd048c76225f6ef28717b7c41ed98b2ec
|
Provenance
The following attestation bundles were made for jharness_models-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_models-0.8.0-py3-none-any.whl -
Subject digest:
5f6a30d6dcc1b647f7062524a046e2bf4c2cc8160404492fab92b7602380d22b - Sigstore transparency entry: 2438267929
- 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: