/** * Maps AFT LSP server kinds to their npm packages and the binary names * exposed in `node_modules/.bin/` after install. * * Used by the auto-install flow to decide which packages to fetch and to * compute the `lsp_paths_extra` directory list passed to the Rust binary. * * Coverage matches OpenCode's `lsp/server.ts` `Npm.which(...)` calls. Any * server NOT in this table is either: * 1. Pattern A (PATH-only, install via system package manager) * 2. Pattern C (GitHub-release auto-download — see lsp-github-table.ts) * 3. Special (eslint/prisma — uses project's own node_modules) */ export interface NpmServerSpec { /** AFT server-kind id (matches `crates/aft/src/lsp/registry.rs::ServerKind::id_str`). */ readonly id: string; /** npm package name. */ readonly npm: string; /** Binary name installed under `node_modules/.bin/`. */ readonly binary: string; /** File extensions (without dot) the LSP serves. Used for project-relevance discovery. */ readonly extensions: readonly string[]; /** Project-root marker files (presence triggers install). Optional. */ readonly rootMarkers?: readonly string[]; /** * Package names whose presence in `/package.json` `dependencies`, * `devDependencies`, or `peerDependencies` triggers auto-install. Useful for * frameworks where the config file alone (`vite.config.ts`, etc.) doesn't * reveal which language server is needed — e.g. a Vite project is only a * Vue project if `vue` is in package.json. Optional. * * GitHub issue #48: Vue, Astro, and Svelte projects can have their .vue * /.astro/.svelte files deep enough in a monorepo (or behind skipped * directories like `apps/`) that the bounded extension walk misses them. * Without rootMarkers OR this hint, auto-install never triggers and the * user sees a recurring `lsp_binary_missing` warning. */ readonly packageJsonDeps?: readonly string[]; } export declare const NPM_LSP_TABLE: readonly NpmServerSpec[]; /** Find an entry by AFT server id. */ export declare function findNpmServerById(id: string): NpmServerSpec | undefined; /** Find an entry by binary name. */ export declare function findNpmServerByBinary(binary: string): NpmServerSpec | undefined; //# sourceMappingURL=lsp-npm-table.d.ts.map