Tornyn extensions
Admin-facing AI tooling. See docs/decisions/001-app-topology.md for the surface map.
Endpoints
- /widget/generate-program — Grist iframe target (also browsable directly for dev/demo).
GET /api/health— health probe (reports LLM source + Grist mode).GET /api/clients— mock client roster withhasEnCursoflag.POST /api/generate— body{ clientId, methodology?, stage?, notes? }; creates a newBorradorprogram.GET /api/programs/:id— read-back of a generated program and its rows.
For Thursday: this app reads/writes a deterministic in-memory mock of Grist (src/lib/grist-mock). The L3 live-Grist swap is a single change in src/lib/grist-mock/index.ts.