// schedule.go is `carlos schedule ls | set | rm | run` (Task 9, the CLI
// front over internal/console/apischedule.go). Pull-based, restart's shape
// and reason: the console touches one small object (schedules.json, or the
// run-signal touch object beside it), and every box serving the app notices
// within seconds and acts on its own. Nothing is pushed at a box: the
// console write itself wakes nothing, and it is the box's own runner that
// wakes a hibernating instance when its tick is due — within ~15s of a
// `run`, or at the next natural occurrence of a schedule.
//
// The vocabulary follows restart's honesty rule on purpose: `set` says
// "recorded", `rm` says "removed", `run` says "requested" — never "fired"
// or "ran". This terminal is not watching the boxes; it wrote an object and
// the fleet is free to act on it whenever it next looks.
package main
import (
"context"
"flag"
"fmt"
"io"
"log"
"strings"
"time"
"github.com/carlosframework/platform/internal/schedule"
)
const scheduleUsage = `usage: carlos schedule