// Etichette riservate del gate HITL e helper di deduplica. Modulo PURO (nessuna // dipendenza da pi-tui): condiviso da tht-gate.js e testabile in isolamento con // node --test .pi/extensions/test_reserved_labels.mjs // `Altro — specifica…` e le due vie di fuga (torna indietro / esci) vengono // SEMPRE aggiunte dal gate alle opzioni in arrivo: se il modello ri-propone uno // step con queste etichette gia' presenti, stripReserved evita il duplicato. export const ALTRO = "Altro — specifica…"; export const QUIT_LABEL = "Esci da Pi (/quit)"; export const BACK_LABEL = "Torna indietro (fase precedente)"; export const CONTROL_LABELS = new Set([QUIT_LABEL, BACK_LABEL]); const RESERVED = new Set([ALTRO, QUIT_LABEL, BACK_LABEL]); // true se l'etichetta e' una di quelle che il gate aggiunge da se'. export function isReserved(label) { return RESERVED.has(label); } // rimuove da una lista di etichette ogni voce riservata (Altro + controlli), // preservando ordine e voci normali. Idempotente. export function stripReserved(labels) { return labels.filter((label) => !isReserved(label)); }