createFsDocsRepository
expérimentaldepuis 0.1.0@legba-core/mcp-docs
createFsDocsRepository
Ce que ça fait
Construit un DocsRepository qui relit docs/ sur disque à chaque appel, jamais une copie figée.
Signature
function createFsDocsRepository(docsRoot: string): DocsRepository
Paramètres
| Nom | Type | Requis | Défaut | Description |
|---|---|---|---|---|
docsRoot | string | oui | — | Chemin absolu vers le dossier docs/ (pas la racine du monorepo) |
Retour
Un DocsRepository avec readIndex, listPackageDocs, listApiDocs, listRecipeDocs, listDecisionDocs et listAllDocs — chaque méthode relit le disque à son propre appel.
Erreurs
N/A — un sous-dossier absent (docs/recipes/ par exemple) rend une liste vide, jamais une exception.
Exemple minimal
import { createFsDocsRepository } from "@legba-core/mcp-docs";
const repo = createFsDocsRepository("/chemin/vers/docs");
const apiDocs = repo.listApiDocs();
Exemple complet
import { dirname } from "node:path";
import { fileURLToPath } from "node:url";
import { createFsDocsRepository, resolveDocsRoot } from "@legba-core/mcp-docs";
const here = dirname(fileURLToPath(import.meta.url));
const docsRoot = resolveDocsRoot(here);
const repo = createFsDocsRepository(docsRoot);
for (const doc of repo.listApiDocs()) {
console.log(doc.path);
}
Pièges
docsRootpointe versdocs/elle-même, pas vers la racine du monorepo — une erreur fréquente est de passer le résultat deresolveRepoRootau lieu deresolveDocsRoot.- Un dossier manquant (
docs/decisions/par exemple, avant la première décision documentée) ne fait jamais planter : la méthode correspondante rend simplement[]. - Aucune mise en cache : appeler une méthode deux fois relit le disque deux fois — voulu, pour ne jamais servir une version périmée (scénario 12 de LGB-052).