Metadata-Version: 2.4
Name: hugpy-harness
Version: 0.1.22
Summary: Headless control arm and optional shared terminal for one Hugpy Wrapper
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: hugpy-terminal==0.1.10

# Hugpy Harness — Wrapper arm

`hugpy-harness` is the headless control center for one Hugpy Wrapper.
It discovers the installed Wrapper endpoint automatically and keeps the Wrapper
role even when Core is present. `hugpy-fleet` is the separate Core arm.
Both reuse `hugpy-terminal`; neither requires the other arm.

## Headless use

```sh
hugpy-harness endpoint
hugpy-harness status
hugpy-harness models
hugpy-harness schema
hugpy-harness settings
hugpy-harness settings --model MODEL
hugpy-harness settings --model MODEL --set '{"ctx":8192}'
```

Commands return JSON. An optional `--base URL` changes the service address,
not the arm's identity. No endpoint selection prompt or environment variable
is needed for a locally installed Wrapper. An unavailable Wrapper is reported;
the command never selects Core as a fallback.

```python
from hugpy_harness import Harness
host = Harness()
print(host.settings())
# host.settings(model='MODEL', changes={'ctx': 8192})
```

Writes use the shared Wrapper validation/readback contract. A mismatch is an
unconfirmed command, never a reason to replay it. Wrapper owns execution and
its database. Settings readbacks describe saved settings, separately from
active loaded-engine configuration.

## Interactive and session clients

`hugpy-harness tui`, `hugpy-harness chat`, `hugpy-harness sessions` and
`hugpy-harness serve` host the shared terminal/session runtime in Wrapper mode.
`hugpy-chat` remains a Wrapper-bound compatibility command. Fleet mode uses
`hugpy-fleet` and `hugpy-fleet-chat`. Fleet journals use `.hugpy_fleet/chat`;
legacy Wrapper journals remain `.hugpy_wrapper/chat`. Existing histories are
preserved. An explicit journal may be reused, but cross-arm destinations are
rejected instead of silently switching roles.

Existing `hugpy_harness.*` library imports used by Agent remain compatibility
exports of `hugpy-terminal`. The Agent runtime is not renamed or removed.

## Build and install

`installers/debian/build.sh OUTPUT` builds an offline standalone `.deb` using
the staged Terminal, Settings, Tools and Toolserver wheels. Install the explicit
artifact with `sudo dpkg -i hugpy-harness_0.1.27_all.deb`.


## Fleet terminal compatibility release — 2026-10-22

Includes the interactive GPU Workers console, multi-select + Model allocation table, opaque popup rendering, and the resource Wrapper selector. Auto-route is checked by default and sends general fleet calls; unchecking it restricts routing to the highlighted Worker batch. Selection and mode persist per session. Explicit Wrapper selection targets that Wrapper.
