/**
* SQLite Tools Index
*
* Aggregates and exports all tool definitions from category modules.
*/
import type { SqliteAdapter } from "../SqliteAdapter.js";
import type { ToolDefinition, ToolGroup } from "../../../types/index.js";
import { getCoreTools } from "./core.js";
import { getJsonHelperTools } from "./json-helpers.js";
import { getJsonOperationTools } from "./json-operations.js";
import { getTextTools } from "./text.js";
import { getFtsTools } from "./fts.js";
import { getStatsTools } from "./stats.js";
import { getVirtualTools } from "./virtual.js";
import { getVectorTools } from "./vector.js";
import { getGeoTools } from "./geo.js";
import { getAdminTools } from "./admin.js";
/**
* Get all tool definitions for the SQLite adapter
*/
export function getAllToolDefinitions(
adapter: SqliteAdapter,
): ToolDefinition[] {
return [
...getCoreTools(adapter),
...getJsonHelperTools(adapter),
...getJsonOperationTools(adapter),
...getTextTools(adapter),
...getFtsTools(adapter),
...getStatsTools(adapter),
...getVirtualTools(adapter),
...getVectorTools(adapter),
...getGeoTools(adapter),
...getAdminTools(adapter),
];
}
/**
* Get tools filtered by group
*/
export function getToolsByGroup(
adapter: SqliteAdapter,
group: ToolGroup,
): ToolDefinition[] {
return getAllToolDefinitions(adapter).filter((tool) => tool.group === group);
}
/**
* Get tool count by group
*/
export function getToolCountByGroup(
adapter: SqliteAdapter,
): Record<ToolGroup, number> {
const tools = getAllToolDefinitions(adapter);
const counts: Partial<Record<ToolGroup, number>> = {};
for (const tool of tools) {
counts[tool.group] = (counts[tool.group] ?? 0) + 1;
}
return counts as Record<ToolGroup, number>;
}
// Re-export individual tool modules
export { getCoreTools } from "./core.js";
export { getJsonHelperTools } from "./json-helpers.js";
export { getJsonOperationTools } from "./json-operations.js";
export { getTextTools } from "./text.js";
export { getFtsTools } from "./fts.js";
export { getStatsTools } from "./stats.js";
export { getVirtualTools } from "./virtual.js";
export { getVectorTools } from "./vector.js";
export { getGeoTools } from "./geo.js";
export { getAdminTools } from "./admin.js";