@tricoteuses/tisseuse 0.21.0 → 0.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -1
- package/dist/{html-jaUHsXKQ.js → html-DWNF_0Ek.js} +5264 -4923
- package/dist/index.js +84 -421
- package/dist/{resolver-CzmDH4S3.js → resolver-BBrU9oGB.js} +39 -28
- package/dist/server-f-legi.js +1 -1
- package/dist/server.js +971 -667
- package/dist/src/lib/extractors/links.d.ts +3 -1
- package/dist/src/lib/extractors/references.d.ts +4 -0
- package/dist/src/lib/index.d.ts +1 -1
- package/dist/src/lib/legi/canutes_root_cid_index.integration.test.d.ts +1 -0
- package/dist/src/lib/linkers/html.d.ts +3 -1
- package/dist/src/lib/linkers/markdown.d.ts +3 -1
- package/dist/src/lib/linkers/reference-mode.test.d.ts +1 -0
- package/dist/src/lib/server/databases/canutes_root_cid_index.d.ts +11 -0
- package/dist/src/lib/server/index.d.ts +2 -0
- package/dist/src/lib/server/jurisprudence_citations.d.ts +46 -0
- package/dist/src/lib/server/jurisprudence_citations.test.d.ts +1 -0
- package/dist/src/lib/server/jurisprudence_consultation.d.ts +55 -0
- package/dist/src/lib/server/jurisprudence_jade.d.ts +57 -0
- package/dist/src/lib/server/jurisprudence_jade.test.d.ts +1 -0
- package/dist/src/lib/server/jurisprudence_store.d.ts +36 -0
- package/dist/src/lib/server/jurisprudence_store.integration.test.d.ts +1 -0
- package/dist/src/lib/server/jurisprudence_store_closed.test.d.ts +1 -0
- package/dist/src/lib/text_parsers/parsers.d.ts +3 -0
- package/dist/src/scripts/alimenter_jurisprudence_pilote.d.ts +1 -0
- package/dist/src/scripts/configure_postgres_root_cid_index.d.ts +1 -0
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -9,6 +9,22 @@ _Tricoteuses Tisseuse_ is free and open source software.
|
|
|
9
9
|
|
|
10
10
|
_Tricoteuses Tisseuse_ started from a full rewrite of [Metslesliens](https://www.npmjs.com/package/metslesliens) by Seb35, published under the "DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE" (WTFPL) version 2.
|
|
11
11
|
|
|
12
|
+
## Contexte de lecture des références
|
|
13
|
+
|
|
14
|
+
`addLinksToMarkdown` et `addLinksToHtml` acceptent l’option facultative
|
|
15
|
+
`parsingMode: "document" | "references"`. Le type `ReferenceParsingMode` et
|
|
16
|
+
la liste `referenceParsingModes` sont exportés par le point d’entrée public.
|
|
17
|
+
|
|
18
|
+
- Sans option, ou avec `"document"`, l’analyse existante est conservée :
|
|
19
|
+
« Article 2 » peut définir un article d’une loi ou d’un projet de loi.
|
|
20
|
+
- Avec `"references"`, un libellé autonome non législatif tel que
|
|
21
|
+
« Article 197 du code général des impôts. » peut être lié sans ajouter « l’ ».
|
|
22
|
+
N’utilisez pas ce mode pour analyser une loi ou un projet/proposition de loi.
|
|
23
|
+
- Les syntaxes doctrinales telles que « CGI, art. 197 » utilisent la grammaire
|
|
24
|
+
commune dans les deux modes ; il ne s’agit pas d’un sélecteur de corpus.
|
|
25
|
+
|
|
26
|
+
Voir le [contrat et les limites de validation](../../fonctionnalités/references-autonomes-tisseuse-moulineuse.md).
|
|
27
|
+
|
|
12
28
|
## Installation
|
|
13
29
|
|
|
14
30
|
### Create database
|
|
@@ -33,12 +49,14 @@ npm install
|
|
|
33
49
|
|
|
34
50
|
### Cache de l’index des titres juridiques dans Canutes
|
|
35
51
|
|
|
36
|
-
**Cache persistant non activé.** La [qualification de coût #312](https://git.tricoteuses.fr/logiciels/tricoteuses-juridique/pulls/312) ne démontre pas sa rentabilité en production. Le [correctif transactionnel #310](../../docs/architecture/correction-repli-transaction-titres-canutes.md), intégré via [#313](https://git.tricoteuses.fr/logiciels/tricoteuses-juridique/pulls/313), traite aussi les préchargements d’articles des vrais consommateurs.
|
|
52
|
+
**Cache persistant non activé.** La [qualification de coût #312](https://git.tricoteuses.fr/logiciels/tricoteuses-juridique/pulls/312) ne démontre pas sa rentabilité en production. Le [correctif transactionnel #310](../../docs/architecture/correction-repli-transaction-titres-canutes.md), intégré via [#313](https://git.tricoteuses.fr/logiciels/tricoteuses-juridique/pulls/313), traite aussi les préchargements d’articles des vrais consommateurs. Les deux services ont été initialement déployés sur `93daabf0`, correctif et compteurs #314 inclus ; l’[observation ciblée bornée](../../docs/architecture/observation-chargements-titres-canutes.md) est close depuis le 15 octobre 2026 vers 17 h 36 Europe/Paris, avec rollbacks conservés et compteurs désactivés. Minima : 362 reconstructions web, dont neuf sur l’artefact isolé initial et 353 sur des builds ordinaires non qualifiés par leur seul HEAD ; une reconstruction et cinq réutilisations MCP. Le delta complet observé est rejoué sur copies jetables ; Moulineuse suit de nouveau `latest` sans changer d’image exécutée. Ni ces mesures locales ni ce déploiement ne qualifient la rentabilité nette de production. Les tests historiques de l’[audit initial](../../docs/architecture/audit-optimisation-canutes-tisseuse.md) ne suffisaient pas à qualifier cette chaîne avec `TransactionSql`. ACL/réplication et exploitation restent à valider ; la [procédure](../../docs/architecture/deployer-optimisation-canutes-tisseuse.md) et les commandes ci-dessous ne sont pas une autorisation d’activation.
|
|
37
53
|
|
|
38
54
|
L’index préconstruit des titres juridiques est stocké dans `tisseuse.text_titles_infos_parser_cache`, avec la révision de `tisseuse.text_titles_infos_parser_state`. Un lecteur n’écrit jamais ce cache : il le charge si ses gardes et sa révision sont valides, sinon construit les titres en mémoire. L’absence des tables ou de grants de lecture entraîne aussi un repli mémoire.
|
|
39
55
|
|
|
40
56
|
Les linkers et `CanutesResolver` acceptent un pool `Sql` ou une transaction `TransactionSql` **`REPEATABLE READ READ ONLY` / `SERIALIZABLE READ ONLY`**. Les transactions fournies sont réutilisées sans `BEGIN` imbriqué ; `READ COMMITTED` et les transactions écrivables sont refusés, pas implicitement modifiés. BOFiP/BOSS/Ameli utilisent le premier mode. Les lectures de cache optionnelles sont protégées par savepoints ; aucune écriture du lecteur. L’index mémoire reste propre à l’objet SQL exact : une nouvelle transaction peut refaire le chargement, même dans un processus chaud. Le snapshot fourni reste ouvert pendant le parsing, avec un coût potentiel de rétention MVCC ; ce n’est pas le petit snapshot interne d’un pool.
|
|
41
57
|
|
|
58
|
+
La [qualification historique du coût net sur stock complet](../../docs/architecture/cout-net-cache-titres-canutes.md) conserve le défaut transactionnel observé avant sa correction par #313. Ses mesures restent attachées à `bb33b942` ; le bon dénominateur est le chargement évitable par objet SQL, pas seulement le redémarrage du processus. Elle n’autorise aucune activation.
|
|
59
|
+
|
|
42
60
|
`npm run configure` crée les tables et fonctions, sans changer la version globale du schéma (12). Les déclencheurs et ACL sont une étape administrative distincte sur le **primaire**, après préparation du DDL des abonnés logiques :
|
|
43
61
|
|
|
44
62
|
```sh
|
|
@@ -66,6 +84,22 @@ L’[optimisation CPU du rendu AKN et des directives](../../docs/architecture/op
|
|
|
66
84
|
|
|
67
85
|
Le [rapport commun](../../docs/architecture/requalification-tisseuse-main-40041bee.md) consigne le retour favorable de David côté legi-ui avec ses limites de runtime/SHA et les rebases indépendants #273/#275/#297. Les fichiers source et sorties restent inchangés par rebase ; la combinaison native retrouve ses sorties qualifiées et #297 conserve exactement les documents du nouveau main. Les mesures de cache/performance précédentes restent historiques ; aucun cache activé, fusion ou déploiement.
|
|
68
86
|
|
|
87
|
+
Au checkpoint précédant les installations du 12 octobre, l’[étude locale d’indexation des racines CID](../../docs/architecture/etude-index-cid-racines-canutes.md) confirme la suppression du balayage et l’invariance des résultats sur une copie complète de `texte_version`. Un index d’expression sur le JSONB bloque cependant HOT, même hors du prédicat partiel ; une colonne CID stockée préserve HOT dans la preuve locale. **Ce n’est pas une migration prête ni un gain end-to-end mesuré** : imports, schema/réplication et rollout restent à concevoir, aucun runtime/index/cache de production n’est changé.
|
|
88
|
+
|
|
89
|
+
La recommandation historique tirée des [statistiques des changements publiés sur 30/60 jours](../../docs/architecture/frequence-changements-canutes.md) révisait la priorité : ~251 fiches texte touchées/jour, dont ~153 modifiées seulement, ne justifient pas seules la colonne dédiée. **Qualifier l’index d’expression partiel plus simple en premier**, avec mesure de la charge d’import réelle et autorisation distincte. Les articles ne sont pas concernés par cet index et les compteurs du standby ne mesurent pas les écritures du primaire. Aucun changement/installation automatique.
|
|
90
|
+
|
|
91
|
+
### Index d’expression CID des racines
|
|
92
|
+
|
|
93
|
+
Le [lot de consolidation du 16 octobre](../../docs/architecture/consolidation-canutes-gel-2026-10-16.md) ne modifie pas les résolveurs. Après intégration, nos développements Tisseuse sont gelés quelques jours pour les remaniements de David ; le cache persistant des titres et son hook restent inactifs.
|
|
94
|
+
|
|
95
|
+
L’index partiel `LEGITEXT%` peut accélérer le lookup des racines sans changer sa requête ni ajouter de colonne. [Installation, garde-fous, tests et état réel](../../docs/architecture/installer-index-cid-racines-canutes.md). Contrôle SELECT-only par défaut :
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
npm run configure:postgres:legi-root-cid-index
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
L’installation demande `-- --apply` et un rôle administratif sur une cible explicitement autorisée ; réparation d’une construction interrompue uniquement avec `--repair-invalid`. Aucune création depuis `configure`/les lecteurs, aucun cache/triggers/ACL activé. DDL physique répliqué, DDL logique à coordonner localement ; garder dates/ambiguïtés et contrôler imports/WAL. [Coordination Casanabo réalisée sous autorisations distinctes](../../docs/architecture/casanabo-index-cid-replication-canutes.md) : réparation des structures de réplication puis index local, sans activation du cache ni backfill d’embeddings.
|
|
102
|
+
|
|
69
103
|
### Comparer Canutes et `f_legi` en lecture seule
|
|
70
104
|
|
|
71
105
|
`npm run profile:legi-bill -- <fichier> --resolver canutes|flegi --format … --date … --titles source --runs 3 --details --document-output /tmp/document.json` utilise les variables `CANUTES_DB_*` pour la base choisie. Le mode `flegi` emploie un résolveur de profilage qui ne construit ni n’écrit le cache natif ; `--titles cache` exige un cache existant compatible et échoue sinon. Les modes Canutes `legacy`/`individual` ne s’appliquent pas à `flegi`.
|
|
@@ -342,3 +376,7 @@ Operational notes for `f_legi` deployments:
|
|
|
342
376
|
External adapters can extend the public `LegiResolver` class. The public package
|
|
343
377
|
also exports the resolver option types and `buildAndInstallTextTitlesInfos`, so
|
|
344
378
|
an adapter does not need deep imports into Tisseuse.
|
|
379
|
+
|
|
380
|
+
## Déploiement continu
|
|
381
|
+
|
|
382
|
+
Depuis le 2026-11-01, chaque merge dans `main` reconstruit automatiquement Tisseuse sur rook (workflow `Deploy`, job `promotion-rook`).
|