# Trades-Runtime

> Local-first TypeScript operating system for field-trades companies.
> Author / identity: Aziel Eliab only.
X / Twitter: @AzielEliab https://x.com/AzielEliab
> Version: 1.0.0 (repo and Worker source)
> Product label: Local Softwares 1.0 (installable). pilot_started false. live_backends false. Field 1.0 is a later track.
> Worker source pin is 1.0.0. x-product-version and /v1/health in this source match that pin.
> Already-running Worker checked 2026-09-28 is 0.4.12. This source does not deploy.
> Public Glama listing: Latest/releaseVersion 1.0.0-local. The Official MCP Registry still measures 1.0.0-local. The public badge is still 1.0.0-local and does not match the in-repo Softwares cite tip 1.0.0. Catch-up pending. Local Softwares 1.0. Not a Field 1.0 claim. Not Office Softwares 1.0. glama.json version is the in-repo claim file at 1.0.0. The public Glama Latest badge is still 1.0.0-local. Catch-up pending.
> Status: live-pure core + stubs. BYO local ServiceTitan + ProBooks. Option C code-ready / pilot not started. Option D not started. No live backends. Pages off. Public get is the giveaway Worker.

Product is src/. docs/ is a thin local UI. Implementer specs are at repo-root specs/. Public download: https://trades-runtime.vibelock.workers.dev/download

## Software

- Local Softwares 1.0 plain list: help, softwares, version, health
- npx tsx src/cli.ts help — command list (--help, -h)
- npx tsx src/cli.ts softwares — module slug, status, and one line (Softwares in any letter case)
- npx tsx src/cli.ts version — product name and version, plus live_backends false / pilot_started false (--version, -V)
- npx tsx src/cli.ts health — same local honesty card as health-local
- npm test — constitutional rules, CrossTrade secondary-only, Human Authority, confidence≠truth, v0.2 pricebook lock / recognition / weather / maintenance
- npm run demo — synthetic shadow-day + receipts
- npm run byo:admit-demo — synthetic ST+ProBooks admit proof
- npm run drop-in:demo — synthetic ST + ProBooks + trades-app drop-in proof
- npm run desk — local human operator desk at http://127.0.0.1:4174/
- AZTrades desk shell on that desk (Local Softwares only): clock, meal, drive, job price, local login, property card, SupplyHouse public GET, shell render, hint prefs. live_backends false. pilot_started false. Not Field 1.0. SupplyHouse is a public GET when a number returns; the typed cost remains when unavailable (403 or no number); no order path. Other named suppliers stay empty until a permitted account. The property card is company history only. Zillow, Redfin, and a county assessor are not connected until a permitted source. Local login: the first user is okayed; later users need higher approval. No ServiceTitan or Jobber write-back from this shell.
- npm run pilot:prep — Option C box prep receipt (pilot_started false; does not start the pilot)
- npm run pilot:start -- --branch <branchId> — human Option C start (CLI pilot-start). Sets pilot_started true on this isolate only after prep is ready. Refuses a bad or missing branch, prep that is not ready, and --claim-company without real inbound. Catalog and default health stay pilot_started false. SHADOW-SEALED. live_backends false. Not Field 1.0. Not Office Softwares 1.0. Merging docs does not start a pilot.
- npm run health:local — local honesty card
- npm run shadow:sealed-demo — synthetic N-day sealed settlement (pilot not started)
- Manifest: /v1/runtime.json and /modules/

## Modes

Watcher | Shadow | Recommendation | HumanApproved | LimitedAutonomy | Autonomous

## Chains

A Full-Day Trajectory · B Call-to-Call Ledger · C Human Override / Recalibration · D Coordination

## Public surface

https://trades-runtime.vibelock.workers.dev — giveaway Worker UI on this VibeLock host (browser / PWA) without downloading first. Optional counted tarball at /download. The git source is free to clone. GitHub Pages stays off. Aziel Eliab is the author, not the operator.
