#!/usr/bin/env node // Build the /docs-index.json bundle consumed by @crema/lexical-rag-ui at // runtime. Thin wrapper — all engine logic lives in the lib's builder.ts; // this file owns the per-app config (which arcadia-app docs to index and // how to tag them). // // Run: npm run build:docs // // Allowlist is intentional. Excluded files are aspirational/stale and // would poison answers (TODO lists, design docs for unshipped features, // sub-app READMEs that aren't part of arcadia-core). To add a file, // append to SOURCES below — don't auto-discover. import { resolve, dirname } from "node:path" import { fileURLToPath } from "node:url" import MiniSearch from "minisearch" import { buildIndex } from "../../lib-lexical-rag-ui/src/builder.mjs" const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..") const ARCADIA = resolve(ROOT, "../reference/arcadia-app") const OUT = resolve(ROOT, "public/docs-index.json") const SOURCES = [ { path: "README.md", tags: ["core"] }, { path: "docs/ARCADIA.md", tags: ["core"] }, { path: "docs/MODULAR_MONOLITH.md", tags: ["core"] }, { path: "apps/arcadia_core/README.md", tags: ["core"] }, { path: "DEPLOY.md", tags: ["ops"] }, { path: "DEV_DEPLOY.md", tags: ["ops"] }, { path: "DEV_SETUP.md", tags: ["ops"] }, ] buildIndex({ miniSearch: MiniSearch, rootDir: ARCADIA, outPath: OUT, sources: SOURCES, })