# spt-core

Harness-independent core for an agent ecosystem: messaging, live-agent
lifecycle, terminal hosting, P2P networking, and the runtime-manifest harness
contract. Rust crates behind a single `spt` binary.

Development home: `BigscreenVR/spt-bs-core` (this repo). Releases publish to
the private channel `BigscreenVR/spt-bs-releases`; `SaberMage/spt-core` is a
passive mirror.

## Install

<!-- [doc->REQ-INSTALL-BOOTSTRAP-VERB] -->
Installation rides the GitHub CLI and the binary's own self-install verb —
there are no hosted install scripts.

1. Install gh: `winget install --id GitHub.cli` (Windows) ·
   `brew install gh` (macOS) · `sudo apt install gh` (Linux)
2. Authenticate with an account that can read the release channel:
   `gh auth login`
3. Download your platform's binary (assets: `spt-x86_64-windows.exe`,
   `spt-x86_64-linux`, `spt-x86_64-linux-musl`):

   ```sh
   gh release download --repo BigscreenVR/spt-bs-releases --pattern 'spt-x86_64-linux'       # Linux (glibc)
   gh release download --repo BigscreenVR/spt-bs-releases --pattern 'spt-x86_64-windows.exe' # Windows
   ```

4. Run the self-install verb from the downloaded binary (keep its `spt-*`
   name; on Linux `chmod +x` first — `gh` does not set the exec bit):

   ```sh
   chmod +x ./spt-x86_64-linux && ./spt-x86_64-linux install   # Linux
   .\spt-x86_64-windows.exe install                            # Windows
   ```

The verb places the binary at the canonical install path, registers it on
your user PATH (idempotent — re-running is safe), and refuses a binary built
for another platform. First-run identity and daemon start happen on the first
normal `spt` invocation.

## Update

Updates ride the same gh-carried channel. One command each:

- `spt update` — fetch and install the latest core release (docs bundle
  included), then update every release-shipped adapter. Hosted terminals
  survive it. `--core-only` skips the adapters leg.
- `spt update --restart` — the full cycle: the above, finished by restarting
  the daemon onto the new version (hosted sessions bounce and come back on
  their own).
- `spt update adapters` — just the adapters.

## Docs

Rendered docs are node-local: each release ships a docs bundle served by the
daemon at `http://localhost:5474` (`spt docs url` prints the resolved URL).
Doc truth lives in this repo under `docs-site/` and `docs/`.

## Orientation (contributors)

Read `PRD.md`, `ROADMAP.md`, `CONTEXT.md` (authoritative glossary/model),
`docs/adr/` (decisions), and `docs/KNOWN-HAZARDS.md` before working. The
requirement-traceability contract is `docs/TRACEABILITY.md`
(`traceable-reqs.toml` is the registry).
