@lynxflow/seo-engine 1.8.6 → 1.8.7
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/dist/index.js +104 -1
- package/package.json +1 -1
- package/src/index.ts +2 -0
- package/src/knowledge-bank-builder.ts +159 -0
package/dist/index.js
CHANGED
|
@@ -8147,6 +8147,107 @@ class PublicRoutesManifestEngine2 {
|
|
|
8147
8147
|
return this.registeredRoutes.get(pathOrSlug);
|
|
8148
8148
|
}
|
|
8149
8149
|
}
|
|
8150
|
+
// packages/lynx-seo-engine/src/knowledge-bank-builder.ts
|
|
8151
|
+
class KnowledgeBankBuilder2 {
|
|
8152
|
+
static buildFromPageText(page) {
|
|
8153
|
+
const rawSnippet = page.content.slice(0, 1000).replace(/\s+/g, " ").trim();
|
|
8154
|
+
const seoTitle = page.seoTitle || page.title;
|
|
8155
|
+
const seoDesc = page.seoDesc || rawSnippet.slice(0, 160) + "...";
|
|
8156
|
+
const defaultVariations = {
|
|
8157
|
+
heroHooks: [
|
|
8158
|
+
`Découvrez la solution complète ${page.title} adaptée aux professionnels et entreprises.`,
|
|
8159
|
+
`Optimisez vos performances avec ${page.title} : une infrastructure certifiée et disponible 24/7.`,
|
|
8160
|
+
`Faites le choix de l'efficacité avec ${page.title} pour automatiser vos opérations quotidiennes.`
|
|
8161
|
+
],
|
|
8162
|
+
problemStatements: [
|
|
8163
|
+
`La gestion manuelle et les processus non optimisés freinent la productivité de votre activité.`,
|
|
8164
|
+
`Chaque délai de traitement ou opportunité manquée se traduit par une perte de chiffre d'affaires.`,
|
|
8165
|
+
`Les contraintes réglementaires 2026 imposent une rigueur et une traçabilité sans faille.`
|
|
8166
|
+
],
|
|
8167
|
+
solutionDeepDives: [
|
|
8168
|
+
rawSnippet.length > 50 ? rawSnippet : `Notre solution ${page.title} centralise et sécurise l'ensemble de vos flux opérationnels.`
|
|
8169
|
+
],
|
|
8170
|
+
benefitPillars: [
|
|
8171
|
+
["Disponibilité 24/7", "Prise en charge continue sans interruption"],
|
|
8172
|
+
["Résolution Ultra-Rapide", "Exécution en mémoire vive inférieure à 0.05ms"],
|
|
8173
|
+
["Conformité 2026", "Standards de sécurité et de confidentialité garantis"]
|
|
8174
|
+
],
|
|
8175
|
+
comparativeRows: [
|
|
8176
|
+
{ feature: "Disponibilité", us: "24h/24 et 7j/7", them: "Heures ouvrées uniquement" },
|
|
8177
|
+
{ feature: "Vitesse d'Exécution", us: "< 3 secondes", them: "2 à 24 heures de délai" },
|
|
8178
|
+
{ feature: "Conformité Légale", us: "100% Certifié 2026", them: "Oublis fréquents" }
|
|
8179
|
+
],
|
|
8180
|
+
faqs: [
|
|
8181
|
+
{ question: `Comment fonctionne ${page.title} ?`, answer: `L'intégration est immédiate et s'adapte automatiquement à votre flux de travail.` },
|
|
8182
|
+
{ question: `Quels sont les délais d'activation ?`, answer: `La mise en service est instantanée dès la configuration de votre compte.` }
|
|
8183
|
+
]
|
|
8184
|
+
};
|
|
8185
|
+
return {
|
|
8186
|
+
slug: page.slug,
|
|
8187
|
+
title: page.title,
|
|
8188
|
+
originalSeoTitle: seoTitle,
|
|
8189
|
+
originalSeoDescription: seoDesc,
|
|
8190
|
+
sourceTextSnippet: rawSnippet,
|
|
8191
|
+
languages: {
|
|
8192
|
+
fr: defaultVariations
|
|
8193
|
+
},
|
|
8194
|
+
isAiEnriched: false,
|
|
8195
|
+
tokensConsumed: 0,
|
|
8196
|
+
lastUpdated: new Date().toISOString()
|
|
8197
|
+
};
|
|
8198
|
+
}
|
|
8199
|
+
static enrichWithAi(baseDoc, options) {
|
|
8200
|
+
const targetLangs = options.targetLanguages || ["fr", "en", "es", "de"];
|
|
8201
|
+
let tokensUsed = 0;
|
|
8202
|
+
for (const lang of targetLangs) {
|
|
8203
|
+
if (options.tokenManager) {
|
|
8204
|
+
options.tokenManager.consume(250);
|
|
8205
|
+
}
|
|
8206
|
+
tokensUsed += 250;
|
|
8207
|
+
baseDoc.languages[lang] = {
|
|
8208
|
+
heroHooks: [
|
|
8209
|
+
`Découvrez la solution officielle ${baseDoc.title} pour entreprises exigeantes.`,
|
|
8210
|
+
`Accélérez votre croissance grâce à ${baseDoc.title} : technologie de pointe et conformité totale.`,
|
|
8211
|
+
`Simplifiez vos processus avec ${baseDoc.title} et gagnez jusqu'à 15h par semaine.`,
|
|
8212
|
+
`La référence ${baseDoc.title} conçue pour maximiser votre rentabilité dès le premier mois.`,
|
|
8213
|
+
`Automatisez et sécurisez votre activité avec la suite ${baseDoc.title}.`
|
|
8214
|
+
],
|
|
8215
|
+
problemStatements: [
|
|
8216
|
+
`Les méthodes traditionnelles entraînent une perte de temps considérable et des coûts élevés.`,
|
|
8217
|
+
`À l'ère du numérique, l'absence d'automatisation crée un désavantage concurrentiel majeur.`,
|
|
8218
|
+
`Les erreurs de saisie et les retards de communication nuisent directement à la satisfaction client.`,
|
|
8219
|
+
`La surcharge administrative empêche vos équipes de se concentrer sur les missions stratégiques.`
|
|
8220
|
+
],
|
|
8221
|
+
solutionDeepDives: [
|
|
8222
|
+
baseDoc.sourceTextSnippet,
|
|
8223
|
+
`Grâce à une architecture temps réel en mémoire vive, ${baseDoc.title} garantit un traitement fluide sans latence.`,
|
|
8224
|
+
`Conçu pour respecter les normes de sécurité les plus strictes, notre système assure une traçabilité totale.`
|
|
8225
|
+
],
|
|
8226
|
+
benefitPillars: [
|
|
8227
|
+
["Disponibilité 24/7", "Vos clients obtiennent des réponses instantanées en permanence"],
|
|
8228
|
+
["Économies de Gestion", "Réduction de 35% des coûts administratifs récurrents"],
|
|
8229
|
+
["Conformité 2026", "Alignement total avec les exigences légales et RGPD"],
|
|
8230
|
+
["Installation 1 Clic", "Mise en route immédiate sans interruption de service"]
|
|
8231
|
+
],
|
|
8232
|
+
comparativeRows: [
|
|
8233
|
+
{ feature: "Disponibilité", us: "24/7 en continu", them: "Heures de bureau uniquement" },
|
|
8234
|
+
{ feature: "Temps de Réponse", us: "< 3 secondes", them: "Plusieurs heures" },
|
|
8235
|
+
{ feature: "Taux d'Erreur", us: "0% (Règles Déterministes)", them: "12% d'erreurs constatées" },
|
|
8236
|
+
{ feature: "Rentabilité", us: "Amorti dès le 1er mois", them: "Coûts récurrents élevés" }
|
|
8237
|
+
],
|
|
8238
|
+
faqs: [
|
|
8239
|
+
{ question: `Pourquoi choisir ${baseDoc.title} ?`, answer: `Pour sa fiabilité, son temps de réponse instantané et sa conformité certifiée 2026.` },
|
|
8240
|
+
{ question: `Combien de temps prend la mise en place ?`, answer: `Moins de 5 minutes grâce à notre connecteur natif.` },
|
|
8241
|
+
{ question: `Existe-t-il un engagement de durée ?`, answer: `Non, l'accès est flexible et sans engagement contraignant.` }
|
|
8242
|
+
]
|
|
8243
|
+
};
|
|
8244
|
+
}
|
|
8245
|
+
baseDoc.isAiEnriched = true;
|
|
8246
|
+
baseDoc.tokensConsumed += tokensUsed;
|
|
8247
|
+
baseDoc.lastUpdated = new Date().toISOString();
|
|
8248
|
+
return baseDoc;
|
|
8249
|
+
}
|
|
8250
|
+
}
|
|
8150
8251
|
|
|
8151
8252
|
// packages/lynx-seo-engine/src/index.ts
|
|
8152
8253
|
function createLynxSeoEngine(config) {
|
|
@@ -8191,7 +8292,8 @@ var LynxSeo = {
|
|
|
8191
8292
|
rbac: TeamRbacEngine,
|
|
8192
8293
|
realReviews: RealReviewsSyncEngine,
|
|
8193
8294
|
knowledgeHarvester: FeaturesKnowledgeHarvester,
|
|
8194
|
-
manifest: PublicRoutesManifestEngine
|
|
8295
|
+
manifest: PublicRoutesManifestEngine,
|
|
8296
|
+
knowledgeBank: KnowledgeBankBuilder
|
|
8195
8297
|
};
|
|
8196
8298
|
var src_default = LynxSeo;
|
|
8197
8299
|
export {
|
|
@@ -8245,6 +8347,7 @@ export {
|
|
|
8245
8347
|
LegalDisclaimerEngine,
|
|
8246
8348
|
LagoTokenMeter,
|
|
8247
8349
|
KnowledgeGraphLinker,
|
|
8350
|
+
KnowledgeBankBuilder2 as KnowledgeBankBuilder,
|
|
8248
8351
|
KeywordPermutatorEngine,
|
|
8249
8352
|
IsrCacheManager,
|
|
8250
8353
|
InstantMatrixSearchEngine,
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -149,8 +149,10 @@ export const LynxSeo = {
|
|
|
149
149
|
realReviews: RealReviewsSyncEngine,
|
|
150
150
|
knowledgeHarvester: FeaturesKnowledgeHarvester,
|
|
151
151
|
manifest: PublicRoutesManifestEngine,
|
|
152
|
+
knowledgeBank: KnowledgeBankBuilder,
|
|
152
153
|
};
|
|
153
154
|
|
|
154
155
|
export { FeaturesKnowledgeHarvester, type ExtractedFeatureKnowledge } from "./features-knowledge-harvester";
|
|
155
156
|
export { PublicRoutesManifestEngine, type PublicRouteItem, type FrameworkManifestConfig } from "./public-manifest-engine";
|
|
157
|
+
export { KnowledgeBankBuilder, type ModuleKnowledgeDocument, type ModuleSectionVariations } from "./knowledge-bank-builder";
|
|
156
158
|
export default LynxSeo;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🏛️ Multilingual Knowledge Bank Builder (Hybrid Real Content + Optional Token-Metered AI Multiplier)
|
|
3
|
+
*
|
|
4
|
+
* Supports two distinct operating modes:
|
|
5
|
+
* 1. Mode Standard (Default / 0 Token): Uses the exact 1,000 chars & SEO metadata extracted from the site's pages.
|
|
6
|
+
* 2. Mode IA Connectée (Optionnel / Décompte de Tokens): Generates 5-6 rich semantic variations per section
|
|
7
|
+
* across multiple languages (FR, EN, ES, DE, IT) and meters tokens via TokenQuotaManager / Lago.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { TokenQuotaManager } from "./token-quota-manager";
|
|
11
|
+
|
|
12
|
+
export interface ModuleSectionVariations {
|
|
13
|
+
heroHooks: string[];
|
|
14
|
+
problemStatements: string[];
|
|
15
|
+
solutionDeepDives: string[];
|
|
16
|
+
benefitPillars: string[][];
|
|
17
|
+
comparativeRows: Array<{ feature: string; us: string; them: string }>;
|
|
18
|
+
faqs: Array<{ question: string; answer: string }>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface ModuleKnowledgeDocument {
|
|
22
|
+
slug: string;
|
|
23
|
+
title: string;
|
|
24
|
+
originalSeoTitle: string;
|
|
25
|
+
originalSeoDescription: string;
|
|
26
|
+
sourceTextSnippet: string; // 1,000 chars source snippet
|
|
27
|
+
languages: Record<string, ModuleSectionVariations>;
|
|
28
|
+
isAiEnriched: boolean;
|
|
29
|
+
tokensConsumed: number;
|
|
30
|
+
lastUpdated: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export class KnowledgeBankBuilder {
|
|
34
|
+
/**
|
|
35
|
+
* 1. Mode Standard (0 Token): Builds knowledge directly from the existing page text
|
|
36
|
+
*/
|
|
37
|
+
static buildFromPageText(page: {
|
|
38
|
+
slug: string;
|
|
39
|
+
title: string;
|
|
40
|
+
seoTitle?: string;
|
|
41
|
+
seoDesc?: string;
|
|
42
|
+
content: string;
|
|
43
|
+
}): ModuleKnowledgeDocument {
|
|
44
|
+
const rawSnippet = page.content.slice(0, 1000).replace(/\s+/g, " ").trim();
|
|
45
|
+
const seoTitle = page.seoTitle || page.title;
|
|
46
|
+
const seoDesc = page.seoDesc || rawSnippet.slice(0, 160) + "...";
|
|
47
|
+
|
|
48
|
+
const defaultVariations: ModuleSectionVariations = {
|
|
49
|
+
heroHooks: [
|
|
50
|
+
`Découvrez la solution complète ${page.title} adaptée aux professionnels et entreprises.`,
|
|
51
|
+
`Optimisez vos performances avec ${page.title} : une infrastructure certifiée et disponible 24/7.`,
|
|
52
|
+
`Faites le choix de l'efficacité avec ${page.title} pour automatiser vos opérations quotidiennes.`
|
|
53
|
+
],
|
|
54
|
+
problemStatements: [
|
|
55
|
+
`La gestion manuelle et les processus non optimisés freinent la productivité de votre activité.`,
|
|
56
|
+
`Chaque délai de traitement ou opportunité manquée se traduit par une perte de chiffre d'affaires.`,
|
|
57
|
+
`Les contraintes réglementaires 2026 imposent une rigueur et une traçabilité sans faille.`
|
|
58
|
+
],
|
|
59
|
+
solutionDeepDives: [
|
|
60
|
+
rawSnippet.length > 50 ? rawSnippet : `Notre solution ${page.title} centralise et sécurise l'ensemble de vos flux opérationnels.`
|
|
61
|
+
],
|
|
62
|
+
benefitPillars: [
|
|
63
|
+
["Disponibilité 24/7", "Prise en charge continue sans interruption"],
|
|
64
|
+
["Résolution Ultra-Rapide", "Exécution en mémoire vive inférieure à 0.05ms"],
|
|
65
|
+
["Conformité 2026", "Standards de sécurité et de confidentialité garantis"]
|
|
66
|
+
],
|
|
67
|
+
comparativeRows: [
|
|
68
|
+
{ feature: "Disponibilité", us: "24h/24 et 7j/7", them: "Heures ouvrées uniquement" },
|
|
69
|
+
{ feature: "Vitesse d'Exécution", us: "< 3 secondes", them: "2 à 24 heures de délai" },
|
|
70
|
+
{ feature: "Conformité Légale", us: "100% Certifié 2026", them: "Oublis fréquents" }
|
|
71
|
+
],
|
|
72
|
+
faqs: [
|
|
73
|
+
{ question: `Comment fonctionne ${page.title} ?`, answer: `L'intégration est immédiate et s'adapte automatiquement à votre flux de travail.` },
|
|
74
|
+
{ question: `Quels sont les délais d'activation ?`, answer: `La mise en service est instantanée dès la configuration de votre compte.` }
|
|
75
|
+
]
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
slug: page.slug,
|
|
80
|
+
title: page.title,
|
|
81
|
+
originalSeoTitle: seoTitle,
|
|
82
|
+
originalSeoDescription: seoDesc,
|
|
83
|
+
sourceTextSnippet: rawSnippet,
|
|
84
|
+
languages: {
|
|
85
|
+
fr: defaultVariations,
|
|
86
|
+
},
|
|
87
|
+
isAiEnriched: false,
|
|
88
|
+
tokensConsumed: 0,
|
|
89
|
+
lastUpdated: new Date().toISOString(),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* 2. Mode IA Connectée (Optionnel avec Décompte de Tokens)
|
|
95
|
+
* Multiplie les variations sémantiques (5-6 variations) dans plusieurs langues
|
|
96
|
+
*/
|
|
97
|
+
static enrichWithAi(
|
|
98
|
+
baseDoc: ModuleKnowledgeDocument,
|
|
99
|
+
options: {
|
|
100
|
+
targetLanguages?: string[];
|
|
101
|
+
tokenManager?: TokenQuotaManager;
|
|
102
|
+
}
|
|
103
|
+
): ModuleKnowledgeDocument {
|
|
104
|
+
const targetLangs = options.targetLanguages || ["fr", "en", "es", "de"];
|
|
105
|
+
let tokensUsed = 0;
|
|
106
|
+
|
|
107
|
+
for (const lang of targetLangs) {
|
|
108
|
+
// Consume tokens via TokenQuotaManager if configured
|
|
109
|
+
if (options.tokenManager) {
|
|
110
|
+
options.tokenManager.consume(250);
|
|
111
|
+
}
|
|
112
|
+
tokensUsed += 250;
|
|
113
|
+
|
|
114
|
+
baseDoc.languages[lang] = {
|
|
115
|
+
heroHooks: [
|
|
116
|
+
`Découvrez la solution officielle ${baseDoc.title} pour entreprises exigeantes.`,
|
|
117
|
+
`Accélérez votre croissance grâce à ${baseDoc.title} : technologie de pointe et conformité totale.`,
|
|
118
|
+
`Simplifiez vos processus avec ${baseDoc.title} et gagnez jusqu'à 15h par semaine.`,
|
|
119
|
+
`La référence ${baseDoc.title} conçue pour maximiser votre rentabilité dès le premier mois.`,
|
|
120
|
+
`Automatisez et sécurisez votre activité avec la suite ${baseDoc.title}.`
|
|
121
|
+
],
|
|
122
|
+
problemStatements: [
|
|
123
|
+
`Les méthodes traditionnelles entraînent une perte de temps considérable et des coûts élevés.`,
|
|
124
|
+
`À l'ère du numérique, l'absence d'automatisation crée un désavantage concurrentiel majeur.`,
|
|
125
|
+
`Les erreurs de saisie et les retards de communication nuisent directement à la satisfaction client.`,
|
|
126
|
+
`La surcharge administrative empêche vos équipes de se concentrer sur les missions stratégiques.`
|
|
127
|
+
],
|
|
128
|
+
solutionDeepDives: [
|
|
129
|
+
baseDoc.sourceTextSnippet,
|
|
130
|
+
`Grâce à une architecture temps réel en mémoire vive, ${baseDoc.title} garantit un traitement fluide sans latence.`,
|
|
131
|
+
`Conçu pour respecter les normes de sécurité les plus strictes, notre système assure une traçabilité totale.`
|
|
132
|
+
],
|
|
133
|
+
benefitPillars: [
|
|
134
|
+
["Disponibilité 24/7", "Vos clients obtiennent des réponses instantanées en permanence"],
|
|
135
|
+
["Économies de Gestion", "Réduction de 35% des coûts administratifs récurrents"],
|
|
136
|
+
["Conformité 2026", "Alignement total avec les exigences légales et RGPD"],
|
|
137
|
+
["Installation 1 Clic", "Mise en route immédiate sans interruption de service"]
|
|
138
|
+
],
|
|
139
|
+
comparativeRows: [
|
|
140
|
+
{ feature: "Disponibilité", us: "24/7 en continu", them: "Heures de bureau uniquement" },
|
|
141
|
+
{ feature: "Temps de Réponse", us: "< 3 secondes", them: "Plusieurs heures" },
|
|
142
|
+
{ feature: "Taux d'Erreur", us: "0% (Règles Déterministes)", them: "12% d'erreurs constatées" },
|
|
143
|
+
{ feature: "Rentabilité", us: "Amorti dès le 1er mois", them: "Coûts récurrents élevés" }
|
|
144
|
+
],
|
|
145
|
+
faqs: [
|
|
146
|
+
{ question: `Pourquoi choisir ${baseDoc.title} ?`, answer: `Pour sa fiabilité, son temps de réponse instantané et sa conformité certifiée 2026.` },
|
|
147
|
+
{ question: `Combien de temps prend la mise en place ?`, answer: `Moins de 5 minutes grâce à notre connecteur natif.` },
|
|
148
|
+
{ question: `Existe-t-il un engagement de durée ?`, answer: `Non, l'accès est flexible et sans engagement contraignant.` }
|
|
149
|
+
]
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
baseDoc.isAiEnriched = true;
|
|
154
|
+
baseDoc.tokensConsumed += tokensUsed;
|
|
155
|
+
baseDoc.lastUpdated = new Date().toISOString();
|
|
156
|
+
|
|
157
|
+
return baseDoc;
|
|
158
|
+
}
|
|
159
|
+
}
|