Handbooks
Referencia

Índice de paquetes

Once paquetes npm, qué exporta cada uno y cuáles funcionan sin ningún LLM.

Handbooks es un monorepo de once paquetes. Cuatro de ellos nunca tocan un LLM y son útiles por sí solos.

PaqueteFunción¿LLM?Docs
@handbooks/coreModelo de datos, esquemas zod, registro de configuración, utilidadesREADME
@handbooks/analyzerExtracción estática del grafo de llamadas multilenguajeREADME
@handbooks/llmCliente compatible con OpenAI, caché, actor–crítico, mockREADME
@handbooks/pipelineEl pipeline de generación, fases 1–3README
@handbooks/rendererMarkdown, HTML, índice para agentes, llms.txtREADME
@handbooks/skillEmpaquetado SKILL, validación, hashes de derivaREADME
@handbooks/plannerAgente de planificación de solo lecturaREADME
@handbooks/patcherAplicación byte-exacta, copias de seguridad, rollbackREADME
@handbooks/resyncRoll-forward incrementalREADME
@handbooks/studioInterfaz web localREADME
@handbooks/cliEl comando handbookREADME

Los tres más útiles por sí solos

@handbooks/analyzer — un grafo de llamadas para 18 lenguajes

import { registerBuiltinAdapters, discoverAll, getAdapter, buildGraph } from '@handbooks/analyzer';

registerBuiltinAdapters();
const byLanguage = discoverAll('/path/to/repo');
const analyses = [];
for (const [lang, files] of Object.entries(byLanguage)) {
  analyses.push(await getAdapter(lang).analyze(files, '/path/to/repo'));
}
const { graph, stats } = buildGraph(
  { functions: analyses.flatMap((a) => a.functions), edges: analyses.flatMap((a) => a.edges) },
  {
    sourceRoot: '/path/to/repo',
    scannedFiles: Object.values(byLanguage).flat(),
    language: 'multi',
    defaultExt: '',
  },
);

Sin LLM, sin red, sin compilación nativa.

@handbooks/patcher — aplicar un plan de edición de forma segura

import { applyPlan, rollback, parsePlan } from '@handbooks/patcher';

const problems = parsePlan(planText).problems; // lint a plan without applying it
const dry = applyPlan({ sourceRoot, plan: planText, dryRun: true });
if (dry.ok) {
  const result = applyPlan({ sourceRoot, plan: planText });
  // rollback(result.backupDir!, { expectedSourceRoot: sourceRoot })
}

El formato del plan está documentado en Aplicar cambios. Nada obliga a que el plan provenga de @handbooks/planner: puedes escribir uno a mano.

@handbooks/renderer — renderizar cualquier HandbookModel

import { renderMarkdownHandbook, renderAgentSite, renderLlmsTxt } from '@handbooks/renderer';

renderMarkdownHandbook(model, 'out/');
renderAgentSite(model, 'out/agent');
renderLlmsTxt(model, 'out/');

HandbookModel es el único contrato. Rellena uno como quieras y el renderizado, el empaquetado del skill y la planificación funcionan todos.

Exportaciones clave de un vistazo

// @handbooks/core — the vocabulary
CodeGraph · FunctionNode · CallEdge · AdapterCapabilities
FileCard · Skeleton · Assignment · Organization · Narration · RegisterEntry
HandbookModel · StageTree · coerceRole
resolveConfig · settingsFor · envName · scopedEnvName · loadConfigFile · applyEnvFiles
writeFileAtomic · readValidatedJson · pLimit · withRetry · withDirLock · sha256Hex

// @handbooks/analyzer — the parser
registerBuiltinAdapters · registerAdapter · getAdapter · availableLanguages
discoverAll · adapterForFile · buildGraph · writeGraphArtifacts · buildNavPack

// @handbooks/llm — the model seam
ChatClient · OpenAiChatClient · CachedChatClient · MockChatClient
resolveLlmEnv · llmConfigFromValues · actorCriticLoop · ROLE_PROMPTS

// @handbooks/pipeline — generation
generateHandbook · loadHandbookModel · runPhase1 · generateCards
synthesizeSkeleton · synthesizeWithDoctor · assignFiles · organizeStages
narrate · extractRegisters · classifyMembers · WorkDir

// @handbooks/renderer — presentation
renderMarkdownHandbook · renderHtmlSite · renderSinglePageHtml
renderAgentSite · renderLlmsTxt · HandbookView · stageMapMermaid

// @handbooks/skill — packaging
buildSkill · validateSkill

// @handbooks/planner — localization
runPlanner · handbookDirFromSkill · parseDeclarations · ReadOnlyTools

// @handbooks/patcher — execution
applyPlan · rollback · listBackups · parsePlan

// @handbooks/resync — roll-forward
resyncHandbook · loadCase · diffGraphs · detectCardDetail · loadCorrections

// @handbooks/studio — the UI
startStudio · createStudioServer · StateStore · JobRunner

Instalación

pnpm add @handbooks/analyzer     # or npm / yarn

Todos los paquetes son solo ESM ("type": "module"), incluyen declaraciones de tipos, requieren Node ≥ 20.11 y tienen licencia MIT. Las versiones de terceros se fijan una sola vez en el catálogo del workspace, así que dos paquetes nunca pueden acabar en dos versiones de la misma librería.

En esta página