/**
 * task/execution-mode.mjs — canonical execution-mode validation (C21).
 *
 * Single source of truth for the set of valid `execution_mode` values written
 * onto task records and accepted by the router's `--execution-mode` flag.
 * `ask` is intentionally excluded — it's the implicit no-pre-pick value, not
 * something a caller persists.
 *
 * Imported by:
 *   - commands/route.mjs        (--execution-mode override validation)
 *   - commands/task.mjs         (task create / update --execution-mode)
 *   - commands/plan-approval.mjs (no — it doesn't validate the mode itself)
 */
export const VALID_EXECUTION_MODES = Object.freeze([
    'auto',
    'step',
    'plan-only',
    'plan-mode',
    'research',
]);
const VALID_SET = new Set(VALID_EXECUTION_MODES);
/** True when `value` is one of the persisted execution-mode values. */
export function isValidExecutionMode(value) {
    return typeof value === 'string' && VALID_SET.has(value);
}
/** Comma-separated list for usage messages. */
export function executionModesList() {
    return VALID_EXECUTION_MODES.join(', ');
}
//# sourceMappingURL=execution-mode.mjs.map