import type { AutoQueueGroup, AutoQueueLeaf, AutoQueueNode, AutoQueueOrder, } from "yt-dlp-transcript-common/jobs/autoQueuePolicy"; import { isGroup } from "yt-dlp-transcript-common/jobs/autoQueuePolicy"; import type { AutoRunnerIdleReason } from "yt-dlp-transcript-common/controller/autoRunner"; import type { AutoQueueKind } from "yt-dlp-transcript-common/jobs/autoQueueState"; // Shared vocabulary for the dispatcher board. Everything here turns a wire value // into the words an operator would use, in one place, so the deck, the ladder // and the next-up line cannot describe the same state three different ways. export type Channel = { slug: string; name: string | null }; // --- Rules as sentences ------------------------------------------------------ // What a bucket actually means, in words. Deliberately NOT used for the bucket // / rather than // the kit's Radix wrappers, and that is a deliberate, load-bearing choice: // * `selectOption("alpha")` in the suite requires a real