tinyjuice 0.2.1

Pluggable token compression for OpenHuman.
Documentation
# TinyJuice Interface

Self-hostable analytics UI for TinyJuice compression runs. It follows the same
local-first dashboard shape as Headroom while staying decoupled from OpenHuman
runtime code and avoiding raw prompt/context storage.

## Run

```sh
npm install
npm run dev
```

Build a static bundle:

```sh
npm run build
npm run preview
```

Build the container:

```sh
docker build -t tinyjuice-interface .
docker run --rm -p 8080:80 tinyjuice-interface
```

## Analytics Format

The UI accepts a JSON array of run records. Keep this data to metadata and
token/byte counts only.

```json
[
  {
    "id": "run-001",
    "timestamp": "2026-07-04T15:05:00Z",
    "algorithm": "smartcrusher",
    "contentKind": "json",
    "status": "compressed",
    "originalTokens": 2840,
    "compressedTokens": 1180,
    "originalBytes": 11842,
    "compressedBytes": 4928,
    "latencyMs": 23,
    "lossy": true,
    "ccrStored": true,
    "source": "openhuman",
    "profile": "full"
  }
]
```

`public/analytics/sample-runs.json` is a demo fixture, not a benchmark result.
Loaded-run reductions in the UI are computed only from the active JSON dataset.