//! JS: live/instructions.mjs (the boot half). The per-event `_instructions` //! templates belong to the poll verb (part 3); the boot payload's text lives //! here so `live` can ship without it. /// JS: pollCmd(scriptsPath) — `node /live-poll.mjs`, spelled as the /// binary's own poll verb. pub fn poll_cmd(self_cmd: &str) -> String { format!("{} live-poll", self_cmd) } /// JS: bootInstructions({ scriptsPath }) pub fn boot_instructions(self_cmd: &str) -> String { format!("Open the app URL that serves a pageFiles entry (never serverPort; that is the helper). Then start the poll loop per your harness policy in live.md and re-run {} immediately after every event or reply. Every event carries _instructions: follow them; they are the authoritative next step with real ids and paths filled in. A poll that is running is a poll you are SERVICING: never announce you are waiting and idle your turn; stay on the exec session until it returns an event, and never end a turn while a poll is outstanding.", poll_cmd(self_cmd)) } // --------------------------------------------------------------------------- // Per-event instructions (JS: instructionsForEvent). `self_cmd` stands in // for `node /