Thoth (tht) è il prodotto, PSD è il cliente. Nessun riferimento al contesto
clinico nel codice.
Rinomine:
- comando+package nsp→tht (dir nsp/→tht/, 46 import, pyproject entry point)
- gate nsp-gate.js→tht-gate.js (+ rewrite token, relayIfNspFails→relayIfThtFails)
- workspace chirone.{example,test}.yaml→tht.{example,test}.yaml (generici)
- env THOTH_→THT_ (19 var) + NSP_ stragglers (NSP_HARNESS_ROOT, NSP_SESSION)
- commenti/docstring chirone/psdwp3/policlinico neutralizzati ('the reference
implementation', 'the DWH')
Aggiunto [tool.setuptools.packages.find] include=['tht*'] (necessario: l'auto-
discovery rompeva con tht/ + workspaces/ come top-level multipli).
.env operatore aggiornato in-place (prefissi THT_, valori preservati, gitignored).
Verifica: pytest 109 passed, npm test 14 pass, tht phase meta --json OK, zero
residui nsp/THOTH_/NSP_/chirone nel package.
25 lines
1.1 KiB
JavaScript
25 lines
1.1 KiB
JavaScript
// 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));
|
|
}
|