discover_repository_structure
Analyze local codebase structure to identify workspace files, monorepo packages, TypeScript configurations, and package classification details for enhanced project understanding.
Instructions
Inspect a local root path and return workspace files, monorepo packages, tsconfig files, and package classification hints.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes |
Implementation Reference
- src/server.ts:159-178 (handler)The handler registration for discover_repository_structure, which calls the inspectRepository function.
server.registerTool( "discover_repository_structure", { title: "Discover Repository Structure", description: "Inspect a local root path and return workspace files, monorepo packages, tsconfig files, and package classification hints.", inputSchema: rootSchema, }, async (args: InspectRepositoryArgs) => { const repository = inspectRepository(args.root); return { content: [ { type: "text", text: JSON.stringify(repository, null, 2), }, ], structuredContent: repository, }; }, ); - src/repo-inspector.ts:67-83 (handler)The core logic implementation of repository inspection for discover_repository_structure.
export function inspectRepository(root: string): RepositoryDiscoveryResult { const normalizedRoot = toSearchRoot(root); const directories = collectDirectories(normalizedRoot); const workspaceFiles = collectWorkspaceFiles(normalizedRoot); const tsconfigPaths = directories.flatMap((directory) => findDirectChildren(directory, PACKAGE_TSCONFIG_NAMES)); const packageJsonPaths = directories .map((directory) => path.join(directory, "package.json")) .filter((packageJsonPath) => fs.existsSync(packageJsonPath)); const packages = packageJsonPaths.map((packageJsonPath) => inspectPackage(packageJsonPath)).sort(comparePackageInfo); return { root: normalizedRoot, workspaceFiles: workspaceFiles.sort(compareByPath), tsconfigPaths: uniquePaths(tsconfigPaths), packages, }; }