Domain imports
Agent-owned approval contracts live in
harnest.agent.approval. Other existing
domain modules include harnest.content, harnest.credentials,
harnest.continuation, harnest.extensions, harnest.skills, harnest.task,
harnest.logging, and harnest.tracing.
AgentResponse from harnest.http represents an HTTP route response. AgentResponse from harnest.context represents a local agent invocation response; select the contract for your integration.
IDE autocomplete and hover help
Harnest ships as a typed Python package with inline signatures, API docstrings, and a PEP 561py.typed marker. Because each agent uses an isolated managed
environment, synchronize it before opening the project in your editor.
.venv as a link to the
current managed environment. VS Code, PyCharm, and other Python IDEs normally
detect that conventional project path automatically. The editor can then
resolve harnest and show completion, parameter and return types, and hover
documentation without a separate SDK installation or manual interpreter setup.
Harnest never replaces a .venv directory, file, or link that it does not own.
If the path already belongs to you, synchronization still succeeds and prints
IDE environment unchanged: with the exact managed Python executable to select
manually. Add .venv to version-control ignores when working in a project that
was not created by harnest init.
The managed wheel also includes editor-only definitions for
harnest.extensions.docker and harnest.extensions.hatchet. Those imports get
completion and hover help while the actual modules remain available at runtime
only when their corresponding official extension is installed in the project.
Run env sync after dependency changes. Harnest retargets its .venv link when
the content-addressed runtime changes, so an automatically detected interpreter
continues to resolve the current environment.
Scoped operations
Sandbox execution and cleanup share a namespace:control.current() returns the active scope. See sandbox failure recovery and cleanup for cancellation and deadline guarantees.
Query lifecycle coverage with the same domain pattern:
Public API stability
The modules in the table above are Harnest’s supported Python authoring surface. Their declared exports are snapshot-tested so an accidental removal or move fails the release gate. Public callable annotations and hover docstrings are checked by the same gate. Re-exports preserve object identity, including exception classes used by existing handlers. During0.x, Harnest may make a breaking public Python API change only in a
minor release. Public names and signatures are otherwise backward compatible;
deprecated APIs remain available for at least one minor release before removal,
except when retaining them would preserve a security defect. Patch releases do
not intentionally break these contracts.
Serialized plans, locks, manifests, and request/response documents use their own
schema or format versions. A Python re-export does not change those formats, and
a schema migration does not imply that exception identity or Python signatures
may change silently.