Skip to content

smelt.work

Tier: UiHost — Requires a terminal UI; calling these from headless mode raises.

Push background work-state tokens. Tokens drive the prompt top-bar indicator and the reactive work_* cells; plugins observe state by subscribing to those cells. UiHost-only.

smelt.work.busy

fun(label: string): smelt.Reg

Types: smelt.Reg

Push a busy token onto the per-app stack and return a Reg whose :remove() pops it. While any token is live the prompt top-bar indicator animates with the top token's label, and work_state flips to "busy" (unless an engine-side turn is also live, in which case engine state wins). Multiple plugins can hold tokens concurrently; the most recently pushed label wins for display.

smelt.work.is_busy

fun(): boolean

Return true while at least one smelt.work.busy token is live. Plugins that need richer state (top label, full stack, retry countdown, archived outcome) subscribe to the reactive work_* cells instead.