/**
* PostgreSQL PostGIS Extension Tools
*
* Geospatial operations and spatial queries.
* 15 tools total.
*/
import type { PostgresAdapter } from "../../PostgresAdapter.js";
import type { ToolDefinition } from "../../../../types/index.js";
// Basic spatial operations
import {
createPostgisExtensionTool,
createGeometryColumnTool,
createPointInPolygonTool,
createDistanceTool,
createBufferTool,
createIntersectionTool,
createBoundingBoxTool,
createSpatialIndexTool,
} from "./basic.js";
// Advanced spatial operations
import {
createGeocodeTool,
createGeoTransformTool,
createGeoIndexOptimizeTool,
createGeoClusterTool,
} from "./advanced.js";
// Standalone geometry operations (WKT/GeoJSON input)
import {
createGeometryBufferTool,
createGeometryIntersectionTool,
createGeometryTransformTool,
} from "./standalone.js";
/**
* Get all PostGIS tools
*/
export function getPostgisTools(adapter: PostgresAdapter): ToolDefinition[] {
return [
// Basic table-based tools
createPostgisExtensionTool(adapter),
createGeometryColumnTool(adapter),
createPointInPolygonTool(adapter),
createDistanceTool(adapter),
createBufferTool(adapter),
createIntersectionTool(adapter),
createBoundingBoxTool(adapter),
createSpatialIndexTool(adapter),
// Advanced table-based tools
createGeocodeTool(adapter),
createGeoTransformTool(adapter),
createGeoIndexOptimizeTool(adapter),
createGeoClusterTool(adapter),
// Standalone geometry tools (WKT/GeoJSON input)
createGeometryBufferTool(adapter),
createGeometryIntersectionTool(adapter),
createGeometryTransformTool(adapter),
];
}
// Re-export individual tool creators
export {
// Basic
createPostgisExtensionTool,
createGeometryColumnTool,
createPointInPolygonTool,
createDistanceTool,
createBufferTool,
createIntersectionTool,
createBoundingBoxTool,
createSpatialIndexTool,
// Advanced
createGeocodeTool,
createGeoTransformTool,
createGeoIndexOptimizeTool,
createGeoClusterTool,
// Standalone
createGeometryBufferTool,
createGeometryIntersectionTool,
createGeometryTransformTool,
};