POST /api/library/datasheets now writes an IC inbox card or a passive/discrete model. Empty pintables never enter library/extracted. AF Board+AI runs after unchanged run_pcb_checks (PE-SI / HF line stay).
1.4 KiB
1.4 KiB
Libreria componenti — porta prodotto
La libreria non vive dentro l’esame. È una porta a sé: pagina /library + API /api/library. L’analisi usa la libreria; non è l’unico modo per riempirla.
Flusso
PDF + MPN + kind (ic | passive_part | simple)
↓
POST /api/library/datasheets
↓
blob MD5 + ref MPN
↓
scheda componente
IC → library/inbox/{mpn}.json (niente pintable inventata)
passive_part → library/passives/{mpn}.json
simple → library/models/{mpn}.json
Nessun progetto, nessun MODE=run / MODE=pcb. Stesso store library/datasheets/{blobs,refs}.
library/extracted/ si scrive solo con pintable valida (library_gate: ≥2 pin, almeno un nome). PUT /api/library/components/ic/{mpn} promuove inbox → extracted.
Pintable IC: library_gate rifiuta pintable vuota o senza nomi (niente stub in libreria condivisa).
Cosa non è
- Non è admin/Clerk/JWT (non si tocca auth).
- Non è DRC, non è FEM.
- Non inventa pin dal PDF. L’LLM prelim resta un mestiere a parte; la scheda c’è comunque.
- Non sostituisce
library_has_*usati dalla pipeline (library_has_extractionresta falso finché non c’è pintable).
Test
tests/library/ — catalogo, alias MPN, import PDF senza progetto (scheda IC in inbox, passivo in passives), GET/PUT scheda, promozione pintable, rifiuto PDF non valido / kind ignoto.