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

NomTypeRequisDéfautDescription
docsRootstringouiChemin 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

  • docsRoot pointe vers docs/ elle-même, pas vers la racine du monorepo — une erreur fréquente est de passer le résultat de resolveRepoRoot au lieu de resolveDocsRoot.
  • 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).

Voir aussi