@nanocollective/nanocoder
Version:
A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter
59 lines • 2.2 kB
TypeScript
/**
* Language Server Auto-Discovery
* Detects installed language servers on the system
*/
import type { LSPServerConfig } from './lsp-client.js';
interface LanguageServerDefinition {
name: string;
command: string;
args: string[];
languages: string[];
checkCommand?: string;
verificationMethod?: 'version' | 'lsp' | 'none';
installHint?: string;
}
/**
* Check if a directory is a Deno project by looking for deno.json or deno.jsonc
* @param projectRoot The directory to check (defaults to process.cwd())
* @returns true if a Deno configuration file is found, false otherwise
*/
export declare function isDenoProject(projectRoot?: string): boolean;
/**
* Get servers ordered by project context
* Prioritizes Deno over TypeScript LSP when in a Deno project
* @param projectRoot The project root to check for Deno config (defaults to process.cwd())
* @returns Ordered array of server definitions with Deno first if in a Deno project
*/
export declare function getOrderedServers(projectRoot?: string): LanguageServerDefinition[];
/**
* Discover all installed language servers
* @param projectRoot Optional project root for context-aware server selection
*/
export declare function discoverLanguageServers(projectRoot?: string): Promise<LSPServerConfig[]>;
/**
* Get language server config for a specific file extension
*/
export declare function getServerForLanguage(servers: LSPServerConfig[], extension: string): LSPServerConfig | undefined;
/**
* Get the file extension to LSP language ID mapping
*/
export declare function getLanguageId(extension: string): string;
/**
* Get install hints for missing language servers
*/
export declare function getMissingServerHints(extensions: string[]): string[];
/**
* Try to find language server from node_modules (project-local)
*/
export declare function findLocalServer(projectRoot: string, serverName: string): string | null;
/**
* Get all known language servers with their availability status
*/
export declare function getKnownServersStatus(): Array<{
name: string;
available: boolean;
languages: string[];
installHint?: string;
}>;
export {};
//# sourceMappingURL=server-discovery.d.ts.map