Outils d'ingestion
Les 10 outils ingest_* qui écrivent les normes dans votre espace de travail. Utilisés par le skill ingest-norm.
Ces outils permettent à votre agent d'ajouter à votre espace de travail une norme pour laquelle
vous disposez d'une licence. Ils sont pilotés par le skill ingest-norm
(vous ne les appelez pas à la main). Ils sont servis sur les deux transports, connecteur distant et
serveur local. Chaque appel est authentifié (jeton du connecteur ou clé API) et restreint côté
serveur à votre organisation ; les écritures demandent le rôle propriétaire ou admin,
ingest_status est ouvert à tout membre. Tous les identifiants sont renvoyés sous forme de chaînes.
N'ingérez que des normes pour lesquelles votre organisation détient une licence valide. Voir les Conditions.
L'ordre typique : ingest_status → ingest_create_document → ingest_create_sections →
enrichissement (ingest_attach_*, ingest_upload_figure) → ingest_normalize_cross_refs →
ingest_publish.
ingest_status
Vérifie si une norme (par code) existe déjà dans votre espace de travail et combien de sections elle comporte. Appelez-le avant la création pour éviter les doublons.
codestringrequiredCode de norme, p. ex. "SIA 261".
resultobjectStatut d'existence, nombre de sections et score de couverture (quality :
score 0-100, caractères par page, part des pages sous un chapitre, signaux)
pour le code dans votre espace de travail.
ingest_create_document
Crée un document de norme en brouillon dans votre espace de travail. Renvoie le documentId
utilisé par chaque appel ingest_* ultérieur.
codestringrequiredCode de norme, p. ex. "SIA 261".
yearnumberrequiredAnnée de publication.
titlestringrequiredTitre complet de la norme.
languagestringrequiredL'une de "fr", "de", "it", "en".
totalPagesnumberrequiredNombre total de pages du PDF source.
documentIdstringL'identifiant du nouveau document.
ingest_create_sections
Insère en masse des sections dans un document brouillon. Les liens parents se résolvent via
parentNodeId au sein du lot et des sections déjà insérées. Renvoie une correspondance de
nodeId vers le sectionId stocké. Utilisez ces identifiants pour attacher des formules, des
tableaux, des figures et des références croisées.
documentIdstringrequiredL'identifiant issu de ingest_create_document.
sectionsarrayrequiredTableau d'objets section. Chaque section possède :
objet section
nodeIdstringrequiredIdentifiant unique stable au sein du document (p. ex. "s-4-2-1").
parentNodeIdstringnodeId de la section parente ; à omettre pour les racines.
pathstringrequiredChemin lisible, p. ex. "4.2.1" ou "Annexe B.1".
titlestringrequiredsummarystringrequiredRésumé de 1 à 3 phrases utilisé pour la navigation dans l'arbre.
depthnumberrequired0 = chapitre, 1 = section, etc.
contentstringrequiredTexte enrichi complet (formules LaTeX inline acceptées).
rawContentstringrequiredpageStartnumberrequiredpageEndnumberrequiredorderIndexnumberrequiredOrdre au sein du parent.
sectionsobjectUne correspondance nodeId → sectionId.
ingest_attach_formula
Attache une formule LaTeX à une section.
sectionIdstringrequiredIdentifiant de la section cible.
latexstringrequiredLa formule en LaTeX.
descriptionstringrequiredCe que calcule la formule.
formulaNumberstringrequiredLe numéro/label de la formule tel qu'imprimé.
formulaIdstringL'identifiant de la nouvelle formule.
ingest_attach_table
Attache un tableau structuré à une section.
sectionIdstringrequireddataobjectrequired{ headers: string[], rows: string[][] }.
captionstringrequiredtableNumberstringrequiredtableIdstringL'identifiant du nouveau tableau.
ingest_attach_cross_ref
Attache une référence croisée d'une section vers une autre norme ou section.
sourceSectionIdstringrequiredLa section dont provient la référence.
targetDocumentCodestringrequiredCode de la norme cible, p. ex. "SIA 263".
targetSectionPathstringChemin de section cible optionnel dans l'autre norme.
refTextstringrequiredLe texte de la référence tel qu'écrit.
refTypestringrequiredSoit "explicit", soit "implicit".
crossRefIdstringL'identifiant de la nouvelle référence croisée.
ingest_upload_figure
Téléverse une image de figure (base64) et l'attache à une section, en un seul appel.
sectionIdstringrequiredIdentifiant de la section cible.
base64stringrequiredOctets de l'image encodés en base64 (un préfixe data: est toléré).
mimeTypestringrequiredL'une de "image/png", "image/jpeg", "image/webp". Max 8 Mo.
captionstringrequiredLégende de la figure.
figureNumberstringrequiredLe numéro/label de la figure.
figureIdstringL'identifiant de la nouvelle figure.
ingest_normalize_cross_refs
Analyse chaque section d'un document et (re)construit les références croisées vers d'autres normes détectées dans le texte (SIA, SN EN, EN, ISO, DIN…). Idempotent : peut être exécuté plusieurs fois sans risque.
documentIdstringrequiredLe document à analyser.
resultobjectUn résumé des références croisées trouvées et reconstruites.
ingest_publish
Publie un document brouillon afin qu'il devienne interrogeable via les outils de lecture dans votre espace de travail.
Avant de publier, le serveur mesure ce qui est réellement entré de la norme :
caractères de texte par page, part des pages sous un chapitre, feuilles vides,
formules et tableaux attachés. Un document sous 30/100 est refusé avec les
raisons (QUALITY_TOO_LOW) : un agent qui le lirait répondrait depuis des
résumés. Le score est enregistré dans tous les cas et list_norms le rend
sous coverage (full, partial ou sparse).
documentIdstringrequiredLe document à publier.
forcebooleanPublier même sous le plancher. Seulement si le document est réellement aussi court, et que la personne l'a confirmé.
publishedbooleantrue en cas de succès.
qualityobjectLe score enregistré : score, charsPerPage, pagesCovered, sectionCount,
leafCount, emptyLeaves, formulas, tables, figures, crossRefs,
flags.
ingest_delete
Depuis la version 0.7.0, cet outil se déclare destructif
(destructiveHint). Un client qui respecte l'annotation demande confirmation
avant de l'appeler. La suppression efface la norme, ses sections, ses figures
et ses renvois, et libère la place dans vos quotas.
Supprime un document et toutes ses sections, figures, tableaux, formules et références croisées. À utiliser avant une nouvelle ingestion.
documentIdstringrequiredLe document à supprimer.
deletedbooleantrue en cas de succès.
La suppression est permanente et retire tout le contenu enfant. Assurez-vous
de cibler le bon documentId.