docs: converge operator guidance on tht
This commit is contained in:
@@ -13,7 +13,12 @@ detail. Design history lives in `docs/superpowers/specs/` and `docs/superpowers/
|
||||
|
||||
The repo has three independently-built layers. Run the local Docker stack with `./scripts/run-stack.sh` after creating `deploy/env/local.env`; it starts the base+local Compose profile with `frontend`, `core`, `qdrant`, `embedding`, and the one-shot `embedding-model-init`. The core image contains Pi. Qdrant and Ollama are internal Compose services; DWH and LLM remain external configuration endpoints.
|
||||
|
||||
**harness/** (Python `tht` CLI + Pi gate extension)
|
||||
**Native host CLI `tht`** (`tools/tht/`)
|
||||
- Operator surface: `setup`, `start`, `stop`, `status`, `doctor`, `auth`, `workspace`, and `pi`.
|
||||
- Use `tht --installation <absolute-path>/thothii-installation.yaml <command>` for installation,
|
||||
authentication, diagnostics, lifecycle, and workspace operations.
|
||||
|
||||
**harness/** (Python workflow `tht` CLI + Pi gate extension)
|
||||
- Install: `cd harness && python -m venv .venv && pip install -e ".[dev]"` (puts `tht` on PATH)
|
||||
- Test: `.venv/bin/pytest -q` — `l2` (real GLM + remote DB) is opt-in via `addopts = -m 'not l2'`; `l0` (testcontainers) needs Docker
|
||||
- Single test: `.venv/bin/pytest tests/test_session_mutations.py::test_set_name -v` (or `-k <pattern>`); include e2e with `-m l2`
|
||||
@@ -37,8 +42,8 @@ No ESLint on the TS layers — `tsc` is the gate. Tests use vitest + MSW (no net
|
||||
frontend (React/SSE) → backend (Fastify) → pi --mode rpc → tht/harness → DWH (read-only)
|
||||
```
|
||||
|
||||
- **The harness owns the workflow and all persistence.** `tht` (Python) is a deterministic
|
||||
CLI; `harness/.pi/extensions/tht-gate.js` is a Pi extension that drives an **8-phase
|
||||
- **The harness owns the workflow and all persistence.** The Python workflow CLI `tht` inside
|
||||
`core` is deterministic; `harness/.pi/extensions/tht-gate.js` is a Pi extension that drives an **8-phase
|
||||
NL→SQL workflow**. The single source of workflow truth is `harness/workflow.yaml`; the
|
||||
orchestration rules the model must follow are `harness/.pi/skills/tht-sessione/SKILL.md`.
|
||||
"Current phase" is computed by folding the decision ledger (`harness/tht/phase.py`), not
|
||||
@@ -51,7 +56,8 @@ frontend (React/SSE) → backend (Fastify) → pi --mode rpc → tht/harness →
|
||||
There is no verbatim transcript store. A resumed Pi process rebuilds context from
|
||||
`tht session show <id>` + the on-disk artifacts.
|
||||
|
||||
- **The backend is a thin bridge with no database.** `ThtRunner` shells `tht` subcommands;
|
||||
- **The backend is a thin bridge with no database.** `ThtRunner` shells the Python workflow `tht`
|
||||
subcommands inside `core`;
|
||||
`PiProcessManager` runs one Pi child per session and bridges its RPC stream;
|
||||
`SessionBridge` maps Pi RPC events → client events (`ui_request`/`text_delta`/`info`);
|
||||
`SseHub` fans them out over SSE to the browser. App settings live in a JSON file
|
||||
|
||||
Reference in New Issue
Block a user